let mk_memory_ltype = function
(* TODO loading a logical var from memory seems strange *)
| Linteger -> mk_memory_type_var "Mint"
| Lreal -> mk_memory_type_var "Mfloat"
| Ctype t -> mk_memory_ctype t
| Ltype _ -> abort "unsupported memory type"
| Lvar _ -> abort "unsupported memory type"
| Larrow _ -> abort "unsupported memory type"