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