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)?