module type Monad = sig ... endmodule type Monad_ext = sig ... endmodule Option : sig ... endmodule type Or_error = sig ... endmodule Or_error_make : functor (M : sig ... end) -> Or_error with type err = M.err and type 'a t = ('a, M.err) Stdlib.result