我在idris中写了一个简单的函数:
f : (a:Nat) -> (b:Nat) -> (k:(Z=(S Z))) -> (a=b)
f a b k = absurd k --- this works
现在我想用精心制作来写它:
f : (a:Nat) -> (b:Nat) -> (k:(Z=(S Z))) -> (a=b)
f = %runElab (do
intro' -- a
intro' -- b
intro' -- k
-- now what ??
)
我似乎无法找到任何使用荒谬/无效的方法,似乎无法找到任何文档或此示例。尝试使用apply / fill不断抛出有关变量 qquoteTy 和 unqTy 的错误,这些变量在elab的源代码中使用(用haskell编写),我无法弄清楚任何东西从那里。