-- type constructor
type P a = [Char] -> Int -> ParseResult a