2016-04-22 5 views

Antwort

5

Ihre interface tatsächlich hat zwei Parameter: a und f. Aber f sollte genug sein implementation ein holen:

interface Num a => Color (a : Type) (f : a -> Type) | f where 

f hier genannt wird, ein determining parameter.

Hier ist eine unsinnige Voll Beispiel:

import Data.Fin 

interface Num a => Color (a : Type) (f : a -> Type) | f where 
    foo : (x : a) -> f (1 + x) 

Color Nat Fin where 
    foo _ = FZ 

x : Fin 6 
x = foo {f = Fin} 5 
+1

Ooo ich die beiden Parameterschnittstelle hatte, aber ich wusste nicht, ich kann '| Um nur eine Entscheidung zu erzwingen, ist dies ausgezeichnet. – ScarletAmaranth