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.(+) }} ]
