signature INTERPRETATION = sig 
  
  structure LambdaAst : LAMBDA_AST

  (* Denotational Constructs *)

  datatype value =
    BoolV of bool
  | NumV of int
  | ConsV of value * value
  | FunctionV of Cont -> Cont -> value -> value

  and Cont =  K of value -> value

  type Env = LambdaAst.var -> value
  type Computation = Cont -> Env -> value

  val rho0 : Env
  val K0 : Cont
  val Kco : Cont
  
  val C : LambdaAst.expr -> Computation
  val M : LambdaAst.expr -> value


end

  
