While short, I do believe that `SaslM' type makes the code significantly less understandable. This is at least the case for me. This patch removes it and changes the types to read the full `ErrorT AuthFailure (StateT Stream IO) a' type instead.