Wie kann man die zugehörigen Daten einschränken?
Ich möchte darauf hinweisen, dass die zugehörigen Daten immer eine Instanz einer bestimmten Klasse sind.
class (Context (Associated a b)) => Class a where
data Associated a :: * -> *
instance Context (Associated a b) where
func1 = error "func1"
Die freie Variable jedochb
das ist nicht im umfang hindert mich daran. Eine der Lösungen besteht darin, Klassenfunktionen von zu kopierenContext
, aber es sieht hässlich aus.
class Class a where
data Associated a :: * -> *
-- duplicate all functions from class Context
contextFunc1 :: Associated a b -> String
instance Class a => Context (Associated a b) where
func1 = contextFunc1
Gibt es eine idiomatische Möglichkeit, Einschränkungen für den zugeordneten Datentyp festzulegen, bei dem Variablen nicht in head erwähnt werden?
edit: Ich möchte die Kompatibilität mit GHC 7.0.3 behalten