没有居住参数的函数的未解决的元变量

时间:2014-12-06 02:12:00

标签: idris

我在下面的代码中得到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留作未解析的元。

1 个答案:

答案 0 :(得分:1)

事实证明,我需要做的就是枚举foo参数的所有可能模式,然后Idris能够逐一弄清楚它们与{{1}无法统一}的类型:

foo