signature SEMANT = sig structure Frame : FRAME type expty = {exp : Translate.exp, ty: Types.ty} type venv = Env.enventry Symbol.table type tenv = Types.ty Symbol.table val transProg: Absyn.exp -> Frame.frag list val transExp : venv * tenv * Absyn.exp * Translate.level -> expty val transVar : venv * tenv * Absyn.var * Translate.level -> expty val transDec : venv * tenv * Absyn.dec * Translate.level -> {venv : venv, tenv : tenv, exp : Translate.exp list} val transTy : tenv * Absyn.ty -> Types.ty end