module Main {-Parser2-} where data P = P Int | N deriving Show data T = Tsym | Tsyms deriving Show data S = Sc Char deriving Show pp [] s i i2 = P i2 pp (t:ts) s i i2 = case p t s i of P i3 -> pp ts s (i+i3) $ (+) i2 i3 N -> N p Tsym s i|i < length s = case elem (s!!i) ['a'..'z'] of True -> P 1 False -> N p Tsym s i = N p Tsyms s i = pp2 [Tsym, Tsyms] s i 0 --res = p Tsyms (take 1000 $ repeat 'z') 0 res = pp (take 1000 $ repeat Tsym) (take 1000 $ repeat 'z') 0 0 main = putStrLn $ show res