在Idris中,为什么已经在别处定义了参数,我们为什么需要将类型归为类型呢?

问题描述

为什么我们在下面写f : Type -> Type而不是仅仅写f-不是从Functor f推断出来的?:

interface Functor f => Applicative (f : Type -> Type) where
    pure  : a -> f a
    (<*>) : f (a -> b) -> f a -> f b

f已经在以下类型中定义了其种类(或者我应该说Idris中的Type):

interface Functor (f : Type -> Type) where
    map : (m : a -> b) -> f a -> f b

我听说在很多情况下,由于Idris的依存类型系统,Idris无法推断Haskell会使用的类型。这是这种情况吗?

一个相关的问题Failed to declare MonadPlus interface constrained on Monad描述了相同的行为,但并没有真正解决为什么无法推断类型的问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...