lean4-htt/tests/lean/run/termElab.lean
2020-09-13 10:16:15 -07:00

27 lines
663 B
Text

import Lean
new_frontend
open Lean
open Lean.Elab
open Lean.Elab.Term
def tst1 : TermElabM Unit := do
opt ← getOptions;
stx ← `(forall (a b : Nat), Nat);
IO.println "message 1"; -- This message goes direct to stdio. It will be displayed before trace messages.
e ← elabTermAndSynthesize stx none;
logDbgTrace (">>> " ++ e); -- display message when `trace.Elab.debug` is true
IO.println "message 2"
#eval tst1
def tst2 : TermElabM Unit := do
opt ← getOptions;
let a := mkIdent `a;
let b := mkIdent `b;
stx ← `((fun ($a : Type) (x : $a) => @id $a x) _ 1);
e ← elabTermAndSynthesize stx none;
logDbgTrace (">>> " ++ e);
throwErrorIfErrors
#eval tst2