Thunk1

Here we want to test that a function closure captures the value of all relevant symbols in the environment.

type t
interpret t -> int

var thing : t
function f(X:t) = X + thing
function g(X:t) : t

action myaction = {
    g(X) := f(g(X)) + 1
}

export myaction