sig exp -> exp> exp) -> exp> ; params = .; (* Interpreter *) fun eval : -> = fn => (case (eval , eval ) of (, ) => eval ) | => ; params = ; (* Beta Reduction *) fun evalBeta : -> = fn => (case (evalBeta , evalBeta ) of (, ) => evalBeta | (, ) => ) | => (case ({} evalBeta ) of {} => ) | => ;