我在下面的代码中得到foo
未解决的元变量:
namespace Funs
data Funs : Type -> Type where
Nil : Funs a
(::) : {b : Type} -> (a -> List b) -> Funs (List a) -> Funs (List a)
data FunPtr : Funs a -> Type -> Type where
here : FunPtr ((::) {b} _ bs) b
there : FunPtr bs b -> FunPtr (_ :: bs) b
total foo : FunPtr [] b -> Void
我如何说服Idris foo
没有匹配的有效模式?
我已尝试添加
foo f = ?foo
然后在f
上的Emacs中进行案例拆分(只是为了查看可能出现的情况),但这只是删除了行,将foo
留作未解析的元。
答案 0 :(得分:1)
事实证明,我需要做的就是枚举foo
参数的所有可能模式,然后Idris能够逐一弄清楚它们与{{1}无法统一}的类型:
foo