evalM :: EvalTarget v => Insn O O -> EvalM v ()
evalM (Assign var e) =
  do v_e <- eval e
     set_var var v_e
evalM :: EvalTarget v => Insn O O -> EvalM v ()
evalM (Assign var e) =
  do v_e <- eval e
     set_var var v_e
evalM (Assign var e) =
  do v_e <- eval e
     set_var var v_e