Abstract:The main focus in Monad-oriented programming is on a set of Monad definitions and a Monad can be defined in an MAP style or a BIND style. Given a Monad library, it can be used directly if it meets the style of the users?need, otherwise, a new style of Monad should be reconstructed, which is a fussy job and even more the new one may not always satisfy the axioms of a Monad definition. However if an automatic Monad generator is added to the library, users can use a Monad freely without asking whether a new style of Monad is needed or how to construct a Monad in order to satisfy the several axioms of the Monad definition, which not only benefits users but also extends the original Monad library. In this paper an automatic Monad generator from other style of Monad is designed and implemented in Haskell. The generating arithmetic is based on the identity relationship between two Monad definitions.