improved the error reporting system. errors are accumulated during a parsing phase. This is allowed by the MEither monad where MLeft is a soft error and does not terminate a computation right away.