functor (A : Default) -> sig type a = A.a array val default : unit -> a end