Your type t
is abstract. So nothing that comes from outside the Ensemble module can have that type. Thus, []
doesn't have the type 'a Ensemble.t
as you would wish.
The usual solution is to export a value named (say) empty
(or vide
) from the module.