In Haskell Monad is declared as
class   Applicative m   =>  Monad   m   where
    return  ::  a   ->  m   a
    (>>=)   ::  m   a   ->  (a  ->  m   b)  ->  m   b
    return  =   pure
I was wondering if it is okay to redeclare the bind operator as
(>>=)   ::  (a  ->  m   b)  ->  m   a   ->  m   b
?
Is it correct that the second declaration makes it clearer that (>>=) maps a function of type a  ->  m   b to a function of type m a   ->  m   b, while the original declaration makes   less clear   what it means?
Will that change of declaration make something from possible to impossible, or just require some change of using monad (which seems bearable to Haskell programmers)?
Thanks.