问题描述
我试图弄清楚这三个界面之间的区别,以及何时使用每个界面
interface Foo (xs : List Nat) (n : Nat) bar where
...
interface Foo' (xs : List Nat) (bar : Nat -> Type) where
...
interface Foo'' (bar : List Nat -> Nat -> Type) where
...
我认为它类似于 Functor
vs Show
,但我对此也有点含糊。有什么想法吗?
背景
我目前使用 Foo'
,并且我在类型别名中使用它
Baz : Foo' xs bar => Type
Baz {bar} = forall m . Vect m Double -> bar m
但是在使用站点我需要指定 xs
两次:Baz {xs=[1]} {bar=MyFoo [1]}
用于某些 Foo' xs (MyFoo' xs) where
,我不太明白,因为只有一个可能的值可以用于 {{ 1}} 在 xs
的应用中。我正在探索其他的,看看它们是否有效(还没有成功),但我不太清楚每个 API 的含义是什么。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)