{
-{-# OPTIONS -w #-}
+{-# OPTIONS -Wwarn -w #-}
-- The above warning supression flag is a temporary kludge.
-- While working on this module you are encouraged to remove it and fix
-- any warnings in the module. See
module HaddockParse (
parseHaddockParagraphs,
parseHaddockString,
- MyEither(..)
+ EitherString(..)
) where
import {-# SOURCE #-} HaddockLex
import RdrName
}
+%expect 0
+
%tokentype { Token }
%token '/' { TokSpecial '/' }
PARA { TokPara }
STRING { TokString $$ }
-%monad { MyEither String }
+%monad { EitherString }
%name parseHaddockParagraphs doc
%name parseHaddockString seq
| STRING strings { $1 ++ $2 }
{
-happyError :: [Token] -> MyEither String a
+happyError :: [Token] -> EitherString a
happyError toks = MyLeft ("parse error in doc string")
-- We don't want to make an instance for Either String,
-- since every user of the GHC API would get that instance
-data MyEither a b = MyLeft a | MyRight b
+-- But why use non-Haskell98 instances when MyEither String
+-- is the only MyEither we're intending to use anyway? --Isaac Dupree
+--data MyEither a b = MyLeft a | MyRight b
+data EitherString b = MyLeft String | MyRight b
-instance Monad (MyEither String) where
+instance Monad EitherString where
return = MyRight
MyLeft l >>= _ = MyLeft l
MyRight r >>= k = k r