Module Mvar


module Mvar: sig .. end
Shared between M0 and M1 ie variable based memory model.

module type Mv_sig = sig .. end
This is what we need from the memory model to define further operations
module MT: 
functor (M : Mv_sig) -> sig .. end
From Mv_sig, defines everything needed for translation
module MV: 
functor (M : Mv_sig) -> sig .. end
from Mv_sig, we can define operations shared by every memory model based on variables such as substitution, quantification, let, etc...
module type MO_sig = sig .. end
Knowing MV we will be able to add assigns operations
module MC: 
functor (MO : MO_sig) -> sig .. end