Wie funktioniert das Ableiten von Arbeit in Haskell?

Algebraic Datentype (ADTs) in Haskell können automatisch zu Instanzen einiger @ werde typeclasses (wieShow, Eq) durch ableiten von ihnen

data  Maybe a  =  Nothing | Just a
  deriving (Eq, Ord)

Meine Frage ist, wie funktioniert dasderivingie kann Haskell die Funktionen der abgeleiteten Typenklasse für die ableitende ADT implementiere

Auch, warum istderiving nur auf bestimmte typen beschränkt? Warum kann ich keine eigene Typenklasse schreiben, die abgeleitet werden kann?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage