3 ms·
This hand-written parser is a functor: data Parser a = Parser { actualParser :: HandWrittenParser } instance Functor Parser where fmap _ p =
by armchairhacker 3y ago
This hand-written parser is a functor:
data Parser a = Parser { actualParser :: HandWrittenParser }
instance Functor Parser where
fmap _ p = Parser $ actualParser p
instance Applicative Parser where
pure _ = Parser undefined
_ <*> p = Parser $ actualParser p
instance Monad Parser where
p >>= _ = Parser $ actualParser p
parse :: String -> Parser a -> Either ParseError a
parse str p = fmap unsafeCoerce $ handWrittenParse str $ actualParser p