SP
Size: a a a
SP
H
H
p
H
H
AZ
newtype PrsEP a = PrsEP { runPrsEP :: Int -> String -> (Int, Either String (a, String)) }
Парсер принимает позицию, строку и возвращает новую позицию и успех/неуспехH
p
p
newtype PrsEP a = PrsEP { runPrsEP :: Int -> String -> (Int, Either String (a, String)) }
Парсер принимает позицию, строку и возвращает новую позицию и успех/неуспехV
newtype PrsEP a = PrsEP { runPrsEP :: Int -> String -> (Int, Either String (a, String)) }
Парсер принимает позицию, строку и возвращает новую позицию и успех/неуспехH
SP
AD
H
H
AZ
p
H
AZ