I love computation expressions, but I make simple mistakes like forgetting the return keyword or the ! on expressions like let! and return!, or I simply forget to write the do!. This happens much with state monads where I tend to forget about the state and just focus on the monadic operators I have defined.
I sometimes make sure my monadic operators return a type that is "of monad type" instead of an "anonymous" function. This helps to track my forgetful typing, yet is not really ideal. Anybody have better tricks?