-- Assume double is a language construct that doubles a number State { Tc = ? Ctx = nil C = double (call/cc k . suc k) E = [] K = halt } State { Tc = ? Ctx = nil C = E = [x = call/cc k . suc k] K = halt } State { Tc = ? Ctx = } --- k : String -> N left part : (String -> N) -> Bool entire thing : (kont String -> N) -> Bool call/cc : ((String -> N) -> Bool) len (call/cc k . if k "hello" is even then true else false) (k . if k "hello" is even then true else false) (\x . len x) ((\x . 3 + x) 2 + (\x . 3 + x) 4)