add better error handling of non monad in monadic comprehension
better error messages