Ich möchte die folgende typeclass Mapping
definieren:
Eine Instanz von Mapping
ist Data.Map.Map
Und jetzt möchte ich einen Typ Trie :: * -> * -> * -> *
wie
So weit so gut,
jetzt möchte ich auch Trie
s insert
und empty
definieren, und das ist, wo ich in Probleme komme.
Ich werde empty
diskutieren, weil es einfacher ist und insert
es trotzdem braucht ..
Wenn ich das versuche:
und das bringt mich zu folgendem Fehler:
%Vor%Ich habe versucht und versucht, es zu lösen, aber gescheitert.
Weiß jemand, wie es funktioniert? Ist es überhaupt möglich?
Fügen Sie eine funktionale Abhängigkeit hinzu:
%Vor% Die Fehler, die Sie zuvor hatten, waren, weil das Programm nicht eindeutig war, welcher Schlüsseltyp an bestimmten Stellen verwendet werden sollte, daher die Fehler bezüglich der Typvariablen k1
. Die funktionale Abhängigkeit ermöglicht, dass der Schlüsseltyp aus dem Kartentyp abgeleitet wird (indem erklärt wird, dass es nur eine mögliche Antwort gibt), die sich mit diesem Problem befasst.