More documentation, correct .cabal
Use EitherP instead of MaybeP for better error reporting