module Safe:sig..end
Unsafe except that the phantom type normally
passed to declare is generated by a functor. This has the other advantage
of making the layout argument implicit in the output module.module type LAYOUT =sig..end
val declare : string -> (module Record.Safe.LAYOUT)