Free_monad.Make3module F : Functor.S3include Monad_let.S3 with type ('a, 'x, 'y) t := ( 'a, 'x, 'y ) tinclude Monad_let.S_without_syntax3
with type ('a, 'd, 'e) t := ( 'a, 'd, 'e ) tval return : 'a -> ( 'a, _, _ ) tmodule Let_syntax : sig ... end