Ich will nurGibt es eine Standardimplementierung der "trivialen Einschränkung" oder "Objektklasse"?
class Trivial t
instance Trivial t
Das ist natürlich nutzlos in Haskell 98, da Sie nur die Einschränkung weglassen; aber mit ConstraintKinds
können wir explizit benötigte Argumente der Art * -> Constraint
haben. Idealerweise würde ich das gerne als "anonyme Typ-Level-Funktion" definieren, \type a ->()
, aber das ist offensichtlich nicht möglich.
Was soll ich tun, etwas vordefiniertes verwenden oder die Klasse lokal genau dort definieren, wo ich sie brauche (da niemand auf sie zugreifen muss, weil die Instanz universell ist, scheint das auch ganz gut zu sein)?
Welches Problem versuchen Sie damit zu lösen? –
@WW .: gerade jetzt, [ 'Typ (->) = ConstrainedCategory (->) Trivial'] (https://github.com/leftaroundabout/constrained-categories/blob/f2f06b52d0e8cf18cd84d4d9bd0c50247109652d/examples/Invertible.hs# L35). Dort wird es im Grunde nur benötigt, um einen konfliktträchtigen MPTC-FunDep der Nicht-Endo-Funktor-Instanz des optional invertierbaren Funktionstyps zu vermeiden, aber ich beabsichtige, ihn allgemeiner zu nutzen. – leftaroundabout
Ich glaube, dass '() :: Constraint' ist die triviale Einschränkung. –