Ist es möglich, Eq-Instanz für die B a
abzuleiten, wenn zusätzliche Hilfe, z. Eq a
irgendwo?Typ Familien und abgeleitete Instanzen (Eq)
{-# LANGUAGE TypeFamilies #-}
class A a where
type B a
somef :: a -> B a -> B a -> Bool
Frage deriving instances with type families und instance definitions for type families sind in der Nähe. Folgendes funktioniert nicht oder ähnliche Änderungen an type B a
-line (oder nur die falschen versucht).
{-# LANGUAGE StandaloneDeriving #-}
-- deriving instance Eq (B a) -- illegal application
-- deriving instance Eq a => Eq (B a) -- illegal application
Einschränkende Eq a => A a
half nicht. Hinzufügen von Constraint zu somef
kompiliert (somef :: Eq a => ...
) und funktioniert für diese Methode. In diesem Fall wäre es jedoch nett zu sagen, dass die type B a
im Allgemeinen gleichsetzbar ist (so dass nichtgleichwertige B's nicht erlaubt wären) und nicht Methode für Methode.
Sie möchten beschränken können Klasseninstanzen, um selbst eine Instanz von Eq einzugeben? – FreeSalad
Ja, um Ba-Typ-Instanzen auf Typen zu beschränken, die selbst Instanzen von Gl. – Gspia