Idris2/tests/idris2/reflection001/quote.idr
2020-09-16 12:06:38 +01:00

38 lines
705 B
Idris

import Language.Reflection
add : TTImp -> TTImp -> TTImp
add x y = `(~(x) + ~(y))
test : TTImp
test = add `(3) `(4)
bigger : TTImp -> TTImp
bigger val
= `(let xfn : Int -> Int
xfn var = var * 2 in
xfn ~(val))
bigger' : Int -> TTImp
bigger' val
= `(let xfn : Int -> Int
xfn var = var * 2 in
xfn ~(IPrimVal EmptyFC (I val)))
bad : Int -> TTImp
bad val
= `(let xfn : Int -> Int
xfn var = var * 2 in
xfn ~(val))
names : List Name
names = [ `{{ names }}, `{{ Prelude.(+) }} ]
noExtension : Elab ()
noExtension = fail "Should not print this message"
%runElab noExtension
%language ElabReflection
%runElab noExtension