29 votes

Est-il un standard de mise en œuvre de la "trivial contrainte", ou "classe d'objets"?

Je veux juste

class Trivial t
instance Trivial t

C'est bien sûr inutile en Haskell 98 puisque vous pouvez simplement omettre la contrainte; mais avec ConstraintKinds nous pouvons avoir explicitement requis arguments de type * -> Constraint. Idéalement, je voudrais juste la définir comme un "anonyme au niveau du type de la fonction" \type a -> (), mais c'est évidemment pas possible.

Que dois-je faire, utilisez quelque chose de prédéfini ou il suffit de définir la classe locale à droite où j'en ai besoin (comme personne n'aura besoin d'y accéder parce que l'instance est universelle, qui semble tout à fait ok aussi)?

2voto

leftaroundabout Points 23679

Comme cela semble être très populaire, j'ai finalement poussé à un tel trivial-contrainte de classe à un Hackage de package.

import Data.Constraint.Trivial

id' :: Unconstrained t => t -> t
id' = id

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X