type constraint haskell typeclass constraint-kinds

haskell - constraint - ¿Hay alguna implementación estándar de la "restricción trivial" o "clase de objeto"?



syntax record haskell (1)

Como esto parece ser bastante popular, finalmente empujé una clase de restricción trivial a un paquete de Hackage .

import Data.Constraint.Trivial id'' :: Unconstrained t => t -> t id'' = id

Solo quiero

class Trivial t instance Trivial t

Por supuesto, esto es inútil en Haskell 98 ya que simplemente puede omitir la restricción; pero con ConstraintKinds podemos tener argumentos de clase explícitamente requeridos * -> Constraint . Idealmente, me gustaría definir esto como una "función anónima de nivel de /type a -> () " /type a -> () , pero evidentemente no es posible.

¿Qué debo hacer, usar algo predefinido o simplemente definir esa clase localmente donde la necesito (ya que nadie necesitará acceder a ella porque la instancia es universal, eso también parece bastante bien)?