functor (E : Eq) -> sig type a = E.a list val eq : a -> a -> bool end