hebt Gibt es eine Möglichkeit, den Compiler zu haben, leitet die Funktionalität, die ich manuell schreiben würde:Automatische Haskell Ableiten Erklärung, dass
instance Class c => Class (Trans c) where
foo1 = lift foo1
foo2 = lift foo2
...
foo999 = lift foo999
bar1 = \a b c -> lift $ bar1 a b c
...
baz1 = lift . baz1
...
das heißt, wenn eine Art von Klasse Class
in Trans
gewickelt wird, ist es möglich, eine kostenlose Instanz von Class
für Trans
automatisch zu bekommen, ohne das schwere Heben zu tun :)?
Ich bin mir nicht sicher, ich habe verstanden, was Sie eigentlich wollen. Diese Instanz wird auf allen 'c' funktionieren, also musst du sie nur einmal schreiben. Ich denke nicht, dass es im allgemeinen Fall kürzer sein kann. – chi
Aber die Instanz ist langweilig (es hebt nur für alle Funktionen an), vielleicht könnte man dies kurz schreiben (indem ich nicht alle 'fooX = lift fooX' etc. aufzählen muss) – jakubdaniel
Ich sehe, aber jede Alternative (zB Template Haskell) sieht schlimmer aus, es sei denn, Sie haben wirklich eine große Anzahl von Klassenmethoden. – chi