consume :: [Token] -> Token -> ParserConsumed
consume (tHead:tTail) matched
    | tHead == matched = return tTail
    | otherwise        = error $ "Can't match expected '" ++ (show matched)
                                 ++ "' with '" ++ (show tHead) ++ "'"
consume :: [Token] -> Token -> ParserConsumed
consume (tHead:tTail) matched
    | tHead == matched = return tTail
    | otherwise        = error $ "Can't match expected '" ++ (show matched)
                                 ++ "' with '" ++ (show tHead) ++ "'"
consume (tHead:tTail) matched
    | tHead == matched = return tTail
    | otherwise        = error $ "Can't match expected '" ++ (show matched)
                                 ++ "' with '" ++ (show tHead) ++ "'"