Redefine list monad instance
问题 I'd like to supply my own instance for the list monad. Unfortunately, the following causes a duplicate instance declaration error when compiling. myReturn :: a -> [a] myBind :: [a] -> (a -> [b]) -> [b] instance Monad [] where return = myReturn (>>=) = myBind From the documentation, it seems like it's not possible to hide instance declarations when importing, and since the list monad instance is already declared in the prelude, I guess I can't get rid of the import itself either. I figured