Existe-t-il une implémentation standard de la "contrainte triviale" ou de la "classe d'objets"?

Je veux juste

class Trivial t
instance Trivial t

Ceci est bien sûr inutile dans Haskell 98 puisque vous pouvez simplement omettre la contrainte; mais avec ConstraintKinds Nous pouvons avoir des arguments explicitement requis de type * -> Constraint. Idéalement, je voudrais simplement définir cela comme une "fonction de niveau de type anonyme" type a -> (), mais ce n'est évidemment pas possible.

Que dois-je faire, utiliser quelque chose de prédéfini ou simplement définir cette classe localement là où j'en ai besoin (car personne n'aura besoin d'y accéder parce que l'instance est universelle, que semble tout à fait ok aussi)?

29
demandé sur duffymo 2014-02-06 18:00:18

1 réponses

Comme cela semble être très populaire, j'ai finalement poussé une telle classe de contrainte triviale vers un paquet de Hackage .

import Data.Constraint.Trivial

id' :: Unconstrained t => t -> t
id' = id
2
répondu leftaroundabout 2014-05-30 10:50:32