7 data ParseResult a = OkP a | FailP String
8 type P a = String -> Int -> ParseResult a
10 instance Show a => Show (ParseResult a)
11 where show (OkP r) = show r
14 thenP :: P a -> (a -> P b) -> P b
15 m `thenP` k = \ s l ->
23 failP :: String -> P a
24 failP s s' _ = FailP (s ++ ":" ++ s')
66 let decoded = zDecodeString mn
67 parts = filter (notElem '.') $ groupBy
68 (\ c1 c2 -> c1 /= '.' && c2 /= '.')
70 (take (length parts - 1) parts, last parts)