mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-20 10:02:03 +03:00
45fc100f6c
We stored them as equations between terms, I think because terms are easy to re-evaluate with new information, and because I thought we might want to save them out. It's not usually a problem to do that. However... Going back and forth between terms and values can be expensive if we're stuck in the middle of a complicated unification problem, the like of which can turn up a lot if your types are complicated. So, we need to be able to handle this. Now store the postponed problems as NF, rather than Term, and add a fuction to resume evaluating a NF with an updated context.
9 lines
779 B
Plaintext
9 lines
779 B
Plaintext
Processing as TTImp
|
|
Written TTC
|
|
Yaffle> Main.foo : (%pi Rig0 Explicit (Just m) Main.Nat (%pi Rig0 Explicit (Just a) %type (%pi Rig0 Explicit (Just {k:25}) Main.Nat (%pi RigW Explicit Nothing a (%pi RigW Explicit Nothing ((Main.Vect {k:25}) a) (%pi RigW Explicit Nothing ((Main.Vect m) a) (%pi Rig0 Explicit (Just _) Main.Nat ((Main.Vect ((Main.plus {k:25}) m)) a))))))))
|
|
Yaffle> Bye for now!
|
|
Processing as TTC
|
|
Read TTC
|
|
Yaffle> Main.foo : (%pi Rig0 Explicit (Just m) Main.Nat (%pi Rig0 Explicit (Just a) %type (%pi Rig0 Explicit (Just {k:25}) Main.Nat (%pi RigW Explicit Nothing a (%pi RigW Explicit Nothing ((Main.Vect {k:25}) a) (%pi RigW Explicit Nothing ((Main.Vect m) a) (%pi Rig0 Explicit (Just _) Main.Nat ((Main.Vect ((Main.plus {k:25}) m)) a))))))))
|
|
Yaffle> Bye for now!
|