我知道这是一个有点人为的例子,但我想知道如何完成以下功能:
total foo : (x : Int) -> {auto prf : x = 10} -> Int
foo 10 = 10
目前,类型检查员抱怨:
Main.foo is not total as there are missing cases
编辑:
向HTNWs添加impossible
分支回答我这样做是为了检查:
total foo : (x : Int) -> {auto prf : x = 10} -> Int
foo 10 {prf = Refl} = 10
foo x {prf = Refl} impossible
答案 0 :(得分:2)
你必须在平等上进行模式匹配
total foo : (x : Int) -> {auto prf : x = 10} -> Int
foo 10 {prf=Refl} = 10