3
関数を引数とするインターフェイスの関数引数を制約する構文は何ですか?インターフェイスの関数引数を制限する
interface Num a => Color (f : a -> Type) where
defs...
をしかし、それはあなたのinterface
Name a is not bound in interface...
関数を引数とするインターフェイスの関数引数を制約する構文は何ですか?インターフェイスの関数引数を制限する
interface Num a => Color (f : a -> Type) where
defs...
をしかし、それはあなたのinterface
Name a is not bound in interface...
は、実際には2つのパラメータを持っていると言う:私が試したa
とf
を。 determining parameterと呼ばれ、ここで
interface Num a => Color (a : Type) (f : a -> Type) | f where
f
:しかしf
はimplementation
を選ぶのに十分でなければなりません。
ここでは無意味な完全な例です:
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
おお、私は2つのパラメータインタフェースを持っていたが、私は、私は '使用することができます実現しませんでした| f 'を選択するだけで強制的に、これは優れています。 – ScarletAmaranth