idris - Unsolved metavariable for function that has no inhabited arguments -
i getting unsolved metavariable foo in code below:
namespace funs data funs : type -> type nil : funs (::) : {b : type} -> (a -> list b) -> funs (list a) -> funs (list a) data funptr : funs -> type -> type here : funptr ((::) {b} _ bs) b there : funptr bs b -> funptr (_ :: bs) b total foo : funptr [] b -> void how convince idris foo has no valid patterns match on?
i've tried adding
foo f = ?foo and doing case split in emacs on f (just see might come up), removes line, leaving foo unsolved meta.
it turns out need enumerate possible patterns foo's argument, , idris able figure out, 1 one, un-unifyable foo's type:
foo : funptr [] b -> void foo here impossible foo (there _) impossible
Comments
Post a Comment