192.54/170.74 MAYBE 194.38/171.25 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 194.38/171.25 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 194.38/171.25 194.38/171.25 194.38/171.25 H-Termination with start terms of the given HASKELL could not be shown: 194.38/171.25 194.38/171.25 (0) HASKELL 194.38/171.25 (1) LR [EQUIVALENT, 0 ms] 194.38/171.25 (2) HASKELL 194.38/171.25 (3) CR [EQUIVALENT, 0 ms] 194.38/171.25 (4) HASKELL 194.38/171.25 (5) IFR [EQUIVALENT, 0 ms] 194.38/171.25 (6) HASKELL 194.38/171.25 (7) BR [EQUIVALENT, 0 ms] 194.38/171.25 (8) HASKELL 194.38/171.25 (9) COR [EQUIVALENT, 50 ms] 194.38/171.25 (10) HASKELL 194.38/171.25 (11) LetRed [EQUIVALENT, 0 ms] 194.38/171.25 (12) HASKELL 194.38/171.25 (13) NumRed [SOUND, 17 ms] 194.38/171.25 (14) HASKELL 194.38/171.25 194.38/171.25 194.38/171.25 ---------------------------------------- 194.38/171.25 194.38/171.25 (0) 194.38/171.25 Obligation: 194.38/171.25 mainModule Main 194.38/171.25 module Main where { 194.38/171.25 import qualified Prelude; 194.38/171.25 } 194.38/171.25 194.38/171.25 ---------------------------------------- 194.38/171.25 194.38/171.25 (1) LR (EQUIVALENT) 194.38/171.25 Lambda Reductions: 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu24->case vu24 of { 194.38/171.25 (c,''' : []) -> (c,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "readsPrec0 t vu24 = case vu24 of { 194.38/171.25 (c,''' : []) -> (c,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu25->case vu25 of { 194.38/171.25 (''' : s,t) -> concatMap (readsPrec0 t) (readLitChar s); 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "readsPrec1 vu25 = case vu25 of { 194.38/171.25 (''' : s,t) -> concatMap (readsPrec0 t) (readLitChar s); 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\r->concatMap readsPrec1 (lex r)" 194.38/171.25 is transformed to 194.38/171.25 "readsPrec2 r = concatMap readsPrec1 (lex r); 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\nd->n * radix + d" 194.38/171.25 is transformed to 194.38/171.25 "readInt0 radix n d = n * radix + d; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu77->case vu77 of { 194.38/171.25 (ds,r) -> (foldl1 (readInt0 radix) (map (fromIntegral . digToInt) ds),r) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "readInt1 radix digToInt vu77 = case vu77 of { 194.38/171.25 (ds,r) -> (foldl1 (readInt0 radix) (map (fromIntegral . digToInt) ds),r) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu54->case vu54 of { 194.38/171.25 (ch,''' : t) -> if ch /= ''' : [] then (''' : ch ++ ''' : [],t) : [] else []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "lex0 vu54 = case vu54 of { 194.38/171.25 (ch,''' : t) -> if ch /= ''' : [] then (''' : ch ++ ''' : [],t) : [] else []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu56->case vu56 of { 194.38/171.25 (str,u) -> (ch ++ str,u) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "lexString0 ch vu56 = case vu56 of { 194.38/171.25 (str,u) -> (ch ++ str,u) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu57->case vu57 of { 194.38/171.25 (ch,t) -> concatMap (lexString0 ch) (lexString t); 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "lexString1 vu57 = case vu57 of { 194.38/171.25 (ch,t) -> concatMap (lexString0 ch) (lexString t); 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu58->case vu58 of { 194.38/171.25 '\' : t -> ([],t) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "lexStrItem0 vu58 = case vu58 of { 194.38/171.25 '\' : t -> ([],t) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu55->case vu55 of { 194.38/171.25 (str,t) -> ('"' : str,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "lex1 vu55 = case vu55 of { 194.38/171.25 (str,t) -> ('"' : str,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu63->case vu63 of { 194.38/171.25 (e,u) -> ('.' : ds ++ e,u) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "lexFracExp0 ds vu63 = case vu63 of { 194.38/171.25 (e,u) -> ('.' : ds ++ e,u) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu64->case vu64 of { 194.38/171.25 (ds,t) -> concatMap (lexFracExp0 ds) (lexExp t); 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "lexFracExp1 vu64 = case vu64 of { 194.38/171.25 (ds,t) -> concatMap (lexFracExp0 ds) (lexExp t); 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu65->case vu65 of { 194.38/171.25 (ds,u) -> (e : c : ds,u) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "lexExp0 e c vu65 = case vu65 of { 194.38/171.25 (ds,u) -> (e : c : ds,u) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu66->case vu66 of { 194.38/171.25 c : t -> if c `elem` '+' : '-' : [] then concatMap (lexExp0 e c) (lexDigits t) else []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "lexExp1 e vu66 = case vu66 of { 194.38/171.25 c : t -> if c `elem` '+' : '-' : [] then concatMap (lexExp0 e c) (lexDigits t) else []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu67->case vu67 of { 194.38/171.25 (ds,t) -> (e : ds,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "lexExp2 e vu67 = case vu67 of { 194.38/171.25 (ds,t) -> (e : ds,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu59->case vu59 of { 194.38/171.25 (sym,t) -> (c : sym,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "lex2 c vu59 = case vu59 of { 194.38/171.25 (sym,t) -> (c : sym,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu60->case vu60 of { 194.38/171.25 (nam,t) -> (c : nam,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "lex3 c vu60 = case vu60 of { 194.38/171.25 (nam,t) -> (c : nam,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu61->case vu61 of { 194.38/171.25 (fe,t) -> (c : ds ++ fe,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "lex4 c ds vu61 = case vu61 of { 194.38/171.25 (fe,t) -> (c : ds ++ fe,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu62->case vu62 of { 194.38/171.25 (ds,s) -> concatMap (lex4 c ds) (lexFracExp s); 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "lex5 c vu62 = case vu62 of { 194.38/171.25 (ds,s) -> concatMap (lex4 c ds) (lexFracExp s); 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\ab->(a,b)" 194.38/171.25 is transformed to 194.38/171.25 "zip0 a b = (a,b); 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu71->case vu71 of { 194.38/171.25 (n,t) -> (toEnum n,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "readEsc0 vu71 = case vu71 of { 194.38/171.25 (n,t) -> (toEnum n,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu72->case vu72 of { 194.38/171.25 (n,t) -> (toEnum n,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "readEsc1 vu72 = case vu72 of { 194.38/171.25 (n,t) -> (toEnum n,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu73->case vu73 of { 194.38/171.25 (n,t) -> (toEnum n,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "readEsc2 vu73 = case vu73 of { 194.38/171.25 (n,t) -> (toEnum n,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu74->case vu74 of { 194.38/171.25 ([],s') -> (c,s') : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "readEsc3 c vu74 = case vu74 of { 194.38/171.25 ([],s') -> (c,s') : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu75->case vu75 of { 194.38/171.25 (c,mne) -> concatMap (readEsc3 c) (lexmatch mne s : []); 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "readEsc4 s vu75 = case vu75 of { 194.38/171.25 (c,mne) -> concatMap (readEsc3 c) (lexmatch mne s : []); 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu68->case vu68 of { 194.38/171.25 (cs@(_ : _),t) -> (cs,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "nonnull0 vu68 = case vu68 of { 194.38/171.25 (cs@(_ : _),t) -> (cs,t) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\d->fromEnum d - fromEnum_0" 194.38/171.25 is transformed to 194.38/171.25 "readOct0 d = fromEnum d - fromEnum_0; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu48->case vu48 of { 194.38/171.25 (')' : [],u) -> (x,u) : []; 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "mandatory0 x vu48 = case vu48 of { 194.38/171.25 (')' : [],u) -> (x,u) : []; 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu49->case vu49 of { 194.38/171.25 (x,t) -> concatMap (mandatory0 x) (lex t); 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "mandatory1 vu49 = case vu49 of { 194.38/171.25 (x,t) -> concatMap (mandatory0 x) (lex t); 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\vu50->case vu50 of { 194.38/171.25 ('(' : [],s) -> concatMap mandatory1 (optional s); 194.38/171.25 _ -> []} 194.38/171.25 " 194.38/171.25 is transformed to 194.38/171.25 "mandatory2 vu50 = case vu50 of { 194.38/171.25 ('(' : [],s) -> concatMap mandatory1 (optional s); 194.38/171.25 _ -> []} 194.38/171.25 ; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\ex->if isEOFError ex then return '\10' else ioError ex" 194.38/171.25 is transformed to 194.38/171.25 "getRest0 ex = if isEOFError ex then return '\10' else ioError ex; 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\cs->return (c : cs)" 194.38/171.25 is transformed to 194.38/171.25 "getRest1 c cs = return (c : cs); 194.38/171.25 " 194.38/171.25 The following Lambda expression 194.38/171.25 "\c->if c == '\10' then return [] else getRest >>= getRest1 c" 194.38/171.26 is transformed to 194.38/171.26 "getRest2 c = if c == '\10' then return [] else getRest >>= getRest1 c; 194.38/171.26 " 194.38/171.26 The following Lambda expression 194.38/171.26 "\ls->return (c : ls)" 194.38/171.26 is transformed to 194.38/171.26 "getLine0 c ls = return (c : ls); 194.38/171.26 " 194.38/171.26 The following Lambda expression 194.38/171.26 "\c->if c == '\10' then return [] else getRest >>= getLine0 c" 194.38/171.26 is transformed to 194.38/171.26 "getLine1 c = if c == '\10' then return [] else getRest >>= getLine0 c; 194.38/171.26 " 194.38/171.26 The following Lambda expression 194.38/171.26 "\d->fromEnum d - fromEnum_0" 194.38/171.26 is transformed to 194.38/171.26 "readDec0 d = fromEnum d - fromEnum_0; 194.38/171.26 " 194.38/171.26 The following Lambda expression 194.38/171.26 "\vu89->case vu89 of { 194.38/171.26 ([],[]) -> x : []; 194.38/171.26 _ -> []} 194.38/171.26 " 194.38/171.26 is transformed to 194.38/171.26 "readIO0 x vu89 = case vu89 of { 194.38/171.26 ([],[]) -> x : []; 194.38/171.26 _ -> []} 194.38/171.26 ; 194.38/171.26 " 194.38/171.26 The following Lambda expression 194.38/171.26 "\vu90->case vu90 of { 194.38/171.26 (x,t) -> concatMap (readIO0 x) (lex t); 194.38/171.26 _ -> []} 194.38/171.26 " 194.38/171.26 is transformed to 194.38/171.26 "readIO1 vu90 = case vu90 of { 194.38/171.26 (x,t) -> concatMap (readIO0 x) (lex t); 194.38/171.26 _ -> []} 194.38/171.26 ; 194.38/171.26 " 194.38/171.26 The following Lambda expression 194.38/171.26 "\r->return r" 194.38/171.26 is transformed to 194.38/171.26 "readLn0 r = return r; 194.38/171.26 " 194.38/171.26 The following Lambda expression 195.26/171.47 "\l->readIO l >>= readLn0" 195.26/171.47 is transformed to 195.26/171.47 "readLn1 l = readIO l >>= readLn0; 195.26/171.47 " 195.26/171.47 The following Lambda expression 195.26/171.47 "\vu69->case vu69 of { 195.26/171.47 ([],s') -> (mne,s') : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexEsc0 mne vu69 = case vu69 of { 195.26/171.47 ([],s') -> (mne,s') : []; 195.26/171.47 _ -> []} 195.26/171.47 ; 195.26/171.47 " 195.26/171.47 The following Lambda expression 195.26/171.47 "\vu70->case vu70 of { 195.26/171.47 (c,mne) -> concatMap (lexEsc0 mne) (lexmatch mne s : []); 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexEsc1 s vu70 = case vu70 of { 195.26/171.47 (c,mne) -> concatMap (lexEsc0 mne) (lexmatch mne s : []); 195.26/171.47 _ -> []} 195.26/171.47 ; 195.26/171.47 " 195.26/171.47 The following Lambda expression 195.26/171.47 "\(_,zs)->zs" 195.26/171.47 is transformed to 195.26/171.47 "zs0 (_,zs) = zs; 195.26/171.47 " 195.26/171.47 The following Lambda expression 195.26/171.47 "\(ys,_)->ys" 195.26/171.47 is transformed to 195.26/171.47 "ys0 (ys,_) = ys; 195.26/171.47 " 195.26/171.47 195.26/171.47 ---------------------------------------- 195.26/171.47 195.26/171.47 (2) 195.26/171.47 Obligation: 195.26/171.47 mainModule Main 195.26/171.47 module Main where { 195.26/171.47 import qualified Prelude; 195.26/171.47 } 195.26/171.47 195.26/171.47 ---------------------------------------- 195.26/171.47 195.26/171.47 (3) CR (EQUIVALENT) 195.26/171.47 Case Reductions: 195.26/171.47 The following Case expression 195.26/171.47 "case vu90 of { 195.26/171.47 (x,t) -> concatMap (readIO0 x) (lex t); 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "readIO10 (x,t) = concatMap (readIO0 x) (lex t); 195.26/171.47 readIO10 _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu89 of { 195.26/171.47 ([],[]) -> x : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "readIO00 x ([],[]) = x : []; 195.26/171.47 readIO00 x _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu77 of { 195.26/171.47 (ds,r) -> (foldl1 (readInt0 radix) (map (fromIntegral . digToInt) ds),r) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "readInt10 radix digToInt (ds,r) = (foldl1 (readInt0 radix) (map (fromIntegral . digToInt) ds),r) : []; 195.26/171.47 readInt10 radix digToInt _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu55 of { 195.26/171.47 (str,t) -> ('"' : str,t) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lex10 (str,t) = ('"' : str,t) : []; 195.26/171.47 lex10 _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu57 of { 195.26/171.47 (ch,t) -> concatMap (lexString0 ch) (lexString t); 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexString10 (ch,t) = concatMap (lexString0 ch) (lexString t); 195.26/171.47 lexString10 _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu56 of { 195.26/171.47 (str,u) -> (ch ++ str,u) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexString00 ch (str,u) = (ch ++ str,u) : []; 195.26/171.47 lexString00 ch _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu58 of { 195.26/171.47 '\' : t -> ([],t) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexStrItem00 ('\' : t) = ([],t) : []; 195.26/171.47 lexStrItem00 _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu59 of { 195.26/171.47 (sym,t) -> (c : sym,t) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lex20 c (sym,t) = (c : sym,t) : []; 195.26/171.47 lex20 c _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu67 of { 195.26/171.47 (ds,t) -> (e : ds,t) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexExp20 e (ds,t) = (e : ds,t) : []; 195.26/171.47 lexExp20 e _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu65 of { 195.26/171.47 (ds,u) -> (e : c : ds,u) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexExp00 e c (ds,u) = (e : c : ds,u) : []; 195.26/171.47 lexExp00 e c _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu62 of { 195.26/171.47 (ds,s) -> concatMap (lex4 c ds) (lexFracExp s); 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lex50 c (ds,s) = concatMap (lex4 c ds) (lexFracExp s); 195.26/171.47 lex50 c _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu66 of { 195.26/171.47 c : t -> if c `elem` '+' : '-' : [] then concatMap (lexExp0 e c) (lexDigits t) else []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexExp10 e (c : t) = if c `elem` '+' : '-' : [] then concatMap (lexExp0 e c) (lexDigits t) else []; 195.26/171.47 lexExp10 e _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu60 of { 195.26/171.47 (nam,t) -> (c : nam,t) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lex30 c (nam,t) = (c : nam,t) : []; 195.26/171.47 lex30 c _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu61 of { 195.26/171.47 (fe,t) -> (c : ds ++ fe,t) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lex40 c ds (fe,t) = (c : ds ++ fe,t) : []; 195.26/171.47 lex40 c ds _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu63 of { 195.26/171.47 (e,u) -> ('.' : ds ++ e,u) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexFracExp00 ds (e,u) = ('.' : ds ++ e,u) : []; 195.26/171.47 lexFracExp00 ds _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu64 of { 195.26/171.47 (ds,t) -> concatMap (lexFracExp0 ds) (lexExp t); 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexFracExp10 (ds,t) = concatMap (lexFracExp0 ds) (lexExp t); 195.26/171.47 lexFracExp10 _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu73 of { 195.26/171.47 (n,t) -> (toEnum n,t) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "readEsc20 (n,t) = (toEnum n,t) : []; 195.26/171.47 readEsc20 _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu72 of { 195.26/171.47 (n,t) -> (toEnum n,t) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "readEsc10 (n,t) = (toEnum n,t) : []; 195.26/171.47 readEsc10 _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu71 of { 195.26/171.47 (n,t) -> (toEnum n,t) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "readEsc00 (n,t) = (toEnum n,t) : []; 195.26/171.47 readEsc00 _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu75 of { 195.26/171.47 (c,mne) -> concatMap (readEsc3 c) (lexmatch mne s : []); 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "readEsc40 s (c,mne) = concatMap (readEsc3 c) (lexmatch mne s : []); 195.26/171.47 readEsc40 s _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu74 of { 195.26/171.47 ([],s') -> (c,s') : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "readEsc30 c ([],s') = (c,s') : []; 195.26/171.47 readEsc30 c _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case concatMap (readEsc4 s) table of { 195.26/171.47 pr : _ -> pr : []; 195.26/171.47 [] -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "readEsc5 (pr : _) = pr : []; 195.26/171.47 readEsc5 [] = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu25 of { 195.26/171.47 (''' : s,t) -> concatMap (readsPrec0 t) (readLitChar s); 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "readsPrec10 (''' : s,t) = concatMap (readsPrec0 t) (readLitChar s); 195.26/171.47 readsPrec10 _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu24 of { 195.26/171.47 (c,''' : []) -> (c,t) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "readsPrec00 t (c,''' : []) = (c,t) : []; 195.26/171.47 readsPrec00 t _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu54 of { 195.26/171.47 (ch,''' : t) -> if ch /= ''' : [] then (''' : ch ++ ''' : [],t) : [] else []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lex00 (ch,''' : t) = if ch /= ''' : [] then (''' : ch ++ ''' : [],t) : [] else []; 195.26/171.47 lex00 _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu48 of { 195.26/171.47 (')' : [],u) -> (x,u) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "mandatory00 x (')' : [],u) = (x,u) : []; 195.26/171.47 mandatory00 x _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu49 of { 195.26/171.47 (x,t) -> concatMap (mandatory0 x) (lex t); 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "mandatory10 (x,t) = concatMap (mandatory0 x) (lex t); 195.26/171.47 mandatory10 _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu50 of { 195.26/171.47 ('(' : [],s) -> concatMap mandatory1 (optional s); 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "mandatory20 ('(' : [],s) = concatMap mandatory1 (optional s); 195.26/171.47 mandatory20 _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu68 of { 195.26/171.47 (cs@(_ : _),t) -> (cs,t) : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "nonnull00 (cs@(_ : _),t) = (cs,t) : []; 195.26/171.47 nonnull00 _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case concatMap readIO1 (reads s) of { 195.26/171.47 x : [] -> return x; 195.26/171.47 [] -> ioError (userError ('N' : 'P' : [])); 195.26/171.47 _ -> ioError (userError ('A' : 'P' : []))} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "readIO2 (x : []) = return x; 195.26/171.47 readIO2 [] = ioError (userError ('N' : 'P' : [])); 195.26/171.47 readIO2 _ = ioError (userError ('A' : 'P' : [])); 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case concatMap (lexEsc1 s) table of { 195.26/171.47 pr : _ -> pr : []; 195.26/171.47 [] -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexEsc2 (pr : _) = pr : []; 195.26/171.47 lexEsc2 [] = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu69 of { 195.26/171.47 ([],s') -> (mne,s') : []; 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexEsc00 mne ([],s') = (mne,s') : []; 195.26/171.47 lexEsc00 mne _ = []; 195.26/171.47 " 195.26/171.47 The following Case expression 195.26/171.47 "case vu70 of { 195.26/171.47 (c,mne) -> concatMap (lexEsc0 mne) (lexmatch mne s : []); 195.26/171.47 _ -> []} 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexEsc10 s (c,mne) = concatMap (lexEsc0 mne) (lexmatch mne s : []); 195.26/171.47 lexEsc10 s _ = []; 195.26/171.47 " 195.26/171.47 195.26/171.47 ---------------------------------------- 195.26/171.47 195.26/171.47 (4) 195.26/171.47 Obligation: 195.26/171.47 mainModule Main 195.26/171.47 module Main where { 195.26/171.47 import qualified Prelude; 195.26/171.47 } 195.26/171.47 195.26/171.47 ---------------------------------------- 195.26/171.47 195.26/171.47 (5) IFR (EQUIVALENT) 195.26/171.47 If Reductions: 195.26/171.47 The following If expression 195.26/171.47 "if c `elem` '+' : '-' : [] then concatMap (lexExp0 e c) (lexDigits t) else []" 195.26/171.47 is transformed to 195.26/171.47 "lexExp100 e c t True = concatMap (lexExp0 e c) (lexDigits t); 195.26/171.47 lexExp100 e c t False = []; 195.26/171.47 " 195.26/171.47 The following If expression 195.26/171.47 "if ch /= ''' : [] then (''' : ch ++ ''' : [],t) : [] else []" 195.26/171.47 is transformed to 195.26/171.47 "lex000 ch t True = (''' : ch ++ ''' : [],t) : []; 195.26/171.47 lex000 ch t False = []; 195.26/171.47 " 195.26/171.47 The following If expression 195.26/171.47 "if isUpper d then 'A' else 'a'" 195.26/171.47 is transformed to 195.26/171.47 "hex0 True = 'A'; 195.26/171.47 hex0 False = 'a'; 195.26/171.47 " 195.26/171.47 The following If expression 195.26/171.47 "if isDigit d then fromEnum_0 else fromEnum (hex0 (isUpper d)) - 10" 195.26/171.47 is transformed to 195.26/171.47 "hex1 d True = fromEnum_0; 195.26/171.47 hex1 d False = fromEnum (hex0 (isUpper d)) - 10; 195.26/171.47 " 195.26/171.47 The following If expression 195.26/171.47 "if b then mandatory else optional" 195.26/171.47 is transformed to 195.26/171.47 "readParen0 True = mandatory; 195.26/171.47 readParen0 False = optional; 195.26/171.47 " 195.26/171.47 The following If expression 195.26/171.47 "if isEOFError ex then return '\10' else ioError ex" 195.26/171.47 is transformed to 195.26/171.47 "getRest00 ex True = return '\10'; 195.26/171.47 getRest00 ex False = ioError ex; 195.26/171.47 " 195.26/171.47 The following If expression 195.26/171.47 "if c == '\10' then return [] else getRest >>= getLine0 c" 195.26/171.47 is transformed to 195.26/171.47 "getLine10 c True = return []; 195.26/171.47 getLine10 c False = getRest >>= getLine0 c; 195.26/171.47 " 195.26/171.47 The following If expression 195.26/171.47 "if c == '\10' then return [] else getRest >>= getRest1 c" 195.26/171.47 is transformed to 195.26/171.47 "getRest20 c True = return []; 195.26/171.47 getRest20 c False = getRest >>= getRest1 c; 195.26/171.47 " 195.26/171.47 195.26/171.47 ---------------------------------------- 195.26/171.47 195.26/171.47 (6) 195.26/171.47 Obligation: 195.26/171.47 mainModule Main 195.26/171.47 module Main where { 195.26/171.47 import qualified Prelude; 195.26/171.47 } 195.26/171.47 195.26/171.47 ---------------------------------------- 195.26/171.47 195.26/171.47 (7) BR (EQUIVALENT) 195.26/171.47 Replaced joker patterns by fresh variables and removed binding patterns. 195.26/171.47 195.26/171.47 Binding Reductions: 195.26/171.47 The bind variable of the following binding Pattern 195.26/171.47 "xs@(yy : yz)" 195.26/171.47 is replaced by the following term 195.26/171.47 "yy : yz" 195.26/171.47 The bind variable of the following binding Pattern 195.26/171.47 "xs@(zw : zx)" 195.26/171.47 is replaced by the following term 195.26/171.47 "zw : zx" 195.26/171.47 The bind variable of the following binding Pattern 195.26/171.47 "cs@(vuw : vux)" 195.26/171.47 is replaced by the following term 195.26/171.47 "vuw : vux" 195.26/171.47 The bind variable of the following binding Pattern 195.26/171.47 "s@(vvu : vvv)" 195.26/171.47 is replaced by the following term 195.26/171.47 "vvu : vvv" 195.26/171.47 The bind variable of the following binding Pattern 195.26/171.47 "s@(vvx : vvy)" 195.26/171.47 is replaced by the following term 195.26/171.47 "vvx : vvy" 195.26/171.47 The bind variable of the following binding Pattern 195.26/171.47 "s@(vzu : vzv)" 195.26/171.47 is replaced by the following term 195.26/171.47 "vzu : vzv" 195.26/171.47 195.26/171.47 ---------------------------------------- 195.26/171.47 195.26/171.47 (8) 195.26/171.47 Obligation: 195.26/171.47 mainModule Main 195.26/171.47 module Main where { 195.26/171.47 import qualified Prelude; 195.26/171.47 } 195.26/171.47 195.26/171.47 ---------------------------------------- 195.26/171.47 195.26/171.47 (9) COR (EQUIVALENT) 195.26/171.47 Cond Reductions: 195.26/171.47 The following Function with conditions 195.26/171.47 "readsPrec00 t (c,''' : []) = (c,t) : []; 195.26/171.47 readsPrec00 t vy = []; 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "readsPrec00 t (c,wuw : wux) = readsPrec002 t (c,wuw : wux); 195.26/171.47 readsPrec00 t vy = readsPrec000 t vy; 195.26/171.47 " 195.26/171.47 "readsPrec000 t vy = []; 195.26/171.47 " 195.26/171.47 "readsPrec001 True t (c,wuw : []) = (c,t) : []; 195.26/171.47 readsPrec001 wuy wuz wvu = readsPrec000 wuz wvu; 195.26/171.47 " 195.26/171.47 "readsPrec002 t (c,wuw : wux) = readsPrec001 (wuw == ''') t (c,wuw : wux); 195.26/171.47 readsPrec002 wvv wvw = readsPrec000 wvv wvw; 195.26/171.47 " 195.26/171.47 The following Function with conditions 195.26/171.47 "takeWhile p [] = []; 195.26/171.47 takeWhile p (x : xs)|p xx : takeWhile p xs|otherwise[]; 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "takeWhile p [] = takeWhile3 p []; 195.26/171.47 takeWhile p (x : xs) = takeWhile2 p (x : xs); 195.26/171.47 " 195.26/171.47 "takeWhile0 p x xs True = []; 195.26/171.47 " 195.26/171.47 "takeWhile1 p x xs True = x : takeWhile p xs; 195.26/171.47 takeWhile1 p x xs False = takeWhile0 p x xs otherwise; 195.26/171.47 " 195.26/171.47 "takeWhile2 p (x : xs) = takeWhile1 p x xs (p x); 195.26/171.47 " 195.26/171.47 "takeWhile3 p [] = []; 195.26/171.47 takeWhile3 wvz wwu = takeWhile2 wvz wwu; 195.26/171.47 " 195.26/171.47 The following Function with conditions 195.26/171.47 "lexString ('"' : s) = ('"' : [],s) : []; 195.26/171.47 lexString s = concatMap lexString1 (lexStrItem s); 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexString (www : s) = lexString4 (www : s); 195.26/171.47 lexString s = lexString2 s; 195.26/171.47 " 195.26/171.47 "lexString2 s = concatMap lexString1 (lexStrItem s); 195.26/171.47 " 195.26/171.47 "lexString3 True (www : s) = ('"' : [],s) : []; 195.26/171.47 lexString3 wwx wwy = lexString2 wwy; 195.26/171.47 " 195.26/171.47 "lexString4 (www : s) = lexString3 (www == '"') (www : s); 195.26/171.47 lexString4 wwz = lexString2 wwz; 195.26/171.47 " 195.26/171.47 The following Function with conditions 195.26/171.47 "lexStrItem ('\' : '&' : s) = ('\' : '&' : [],s) : []; 195.26/171.47 lexStrItem ('\' : c : s)|isSpace cconcatMap lexStrItem0 (dropWhile isSpace s : []); 195.26/171.47 lexStrItem s = lexLitChar s; 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexStrItem (wyx : wzv) = lexStrItem7 (wyx : wzv); 195.26/171.47 lexStrItem (wxv : wxy) = lexStrItem4 (wxv : wxy); 195.26/171.47 lexStrItem s = lexStrItem1 s; 195.26/171.47 " 195.26/171.47 "lexStrItem1 s = lexLitChar s; 195.26/171.47 " 195.26/171.47 "lexStrItem2 wxv c s True = concatMap lexStrItem0 (dropWhile isSpace s : []); 195.26/171.47 lexStrItem2 wxv c s False = lexStrItem1 (wxv : c : s); 195.26/171.47 " 195.26/171.47 "lexStrItem3 True (wxv : c : s) = lexStrItem2 wxv c s (isSpace c); 195.26/171.47 lexStrItem3 wxz wyu = lexStrItem1 wyu; 195.26/171.47 " 195.26/171.47 "lexStrItem4 (wxv : wxy) = lexStrItem3 (wxv == '\') (wxv : wxy); 195.26/171.47 lexStrItem4 wyv = lexStrItem1 wyv; 195.26/171.47 " 195.26/171.47 "lexStrItem5 True (wyx : wyz : s) = ('\' : '&' : [],s) : []; 195.26/171.47 lexStrItem5 wzw wzx = lexStrItem4 wzx; 195.26/171.47 " 195.26/171.47 "lexStrItem6 True (wyx : wyz : s) = lexStrItem5 (wyz == '&') (wyx : wyz : s); 195.26/171.47 lexStrItem6 wzy wzz = lexStrItem4 wzz; 195.26/171.47 " 195.26/171.47 "lexStrItem7 (wyx : wzv) = lexStrItem6 (wyx == '\') (wyx : wzv); 195.26/171.47 lexStrItem7 xuu = lexStrItem4 xuu; 195.26/171.47 " 195.26/171.47 The following Function with conditions 195.26/171.47 "lexStrItem00 ('\' : t) = ([],t) : []; 195.26/171.47 lexStrItem00 ww = []; 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexStrItem00 (xuw : t) = lexStrItem002 (xuw : t); 195.26/171.47 lexStrItem00 ww = lexStrItem000 ww; 195.26/171.47 " 195.26/171.47 "lexStrItem000 ww = []; 195.26/171.47 " 195.26/171.47 "lexStrItem001 True (xuw : t) = ([],t) : []; 195.26/171.47 lexStrItem001 xux xuy = lexStrItem000 xuy; 195.26/171.47 " 195.26/171.47 "lexStrItem002 (xuw : t) = lexStrItem001 (xuw == '\') (xuw : t); 195.26/171.47 lexStrItem002 xuz = lexStrItem000 xuz; 195.26/171.47 " 195.26/171.47 The following Function with conditions 195.26/171.47 "lexExp (e : s)|e `elem` 'e' : 'E' : []concatMap (lexExp1 e) (s : []) ++ concatMap (lexExp2 e) (lexDigits s); 195.26/171.47 lexExp s = ([],s) : []; 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexExp (e : s) = lexExp5 (e : s); 195.26/171.47 lexExp s = lexExp3 s; 195.26/171.47 " 195.26/171.47 "lexExp3 s = ([],s) : []; 195.26/171.47 " 195.26/171.47 "lexExp4 e s True = concatMap (lexExp1 e) (s : []) ++ concatMap (lexExp2 e) (lexDigits s); 195.26/171.47 lexExp4 e s False = lexExp3 (e : s); 195.26/171.47 " 195.26/171.47 "lexExp5 (e : s) = lexExp4 e s (e `elem` 'e' : 'E' : []); 195.26/171.47 lexExp5 xvv = lexExp3 xvv; 195.26/171.47 " 195.26/171.47 The following Function with conditions 195.26/171.47 "lexFracExp ('.' : c : cs)|isDigit cconcatMap lexFracExp1 (lexDigits (c : cs)); 195.26/171.47 lexFracExp s = lexExp s; 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lexFracExp (xvx : xwu) = lexFracExp5 (xvx : xwu); 195.26/171.47 lexFracExp s = lexFracExp2 s; 195.26/171.47 " 195.26/171.47 "lexFracExp2 s = lexExp s; 195.26/171.47 " 195.26/171.47 "lexFracExp3 xvx c cs True = concatMap lexFracExp1 (lexDigits (c : cs)); 195.26/171.47 lexFracExp3 xvx c cs False = lexFracExp2 (xvx : c : cs); 195.26/171.47 " 195.26/171.47 "lexFracExp4 True (xvx : c : cs) = lexFracExp3 xvx c cs (isDigit c); 195.26/171.47 lexFracExp4 xwv xww = lexFracExp2 xww; 195.26/171.47 " 195.26/171.47 "lexFracExp5 (xvx : xwu) = lexFracExp4 (xvx == '.') (xvx : xwu); 195.26/171.47 lexFracExp5 xwx = lexFracExp2 xwx; 195.26/171.47 " 195.26/171.47 The following Function with conditions 195.26/171.47 "lex [] = ([],[]) : []; 195.26/171.47 lex (c : s)|isSpace clex (dropWhile isSpace s); 195.26/171.47 lex (''' : s) = concatMap lex0 (lexLitChar s); 195.26/171.47 lex ('"' : s) = concatMap lex1 (lexString s) where { 195.26/171.47 lex1 vu55 = lex10 vu55; 195.26/171.47 ; 195.26/171.47 lex10 (str,t) = ('"' : str,t) : []; 195.26/171.47 lex10 wx = []; 195.26/171.47 ; 195.26/171.47 lexStrItem ('\' : '&' : s) = ('\' : '&' : [],s) : []; 195.26/171.47 lexStrItem ('\' : c : s)|isSpace cconcatMap lexStrItem0 (dropWhile isSpace s : []); 195.26/171.47 lexStrItem s = lexLitChar s; 195.26/171.47 ; 195.26/171.47 lexStrItem0 vu58 = lexStrItem00 vu58; 195.26/171.47 ; 195.26/171.47 lexStrItem00 ('\' : t) = ([],t) : []; 195.26/171.47 lexStrItem00 ww = []; 195.26/171.47 ; 195.26/171.47 lexString ('"' : s) = ('"' : [],s) : []; 195.26/171.47 lexString s = concatMap lexString1 (lexStrItem s); 195.26/171.47 ; 195.26/171.47 lexString0 ch vu56 = lexString00 ch vu56; 195.26/171.47 ; 195.26/171.47 lexString00 ch (str,u) = (ch ++ str,u) : []; 195.26/171.47 lexString00 ch wu = []; 195.26/171.47 ; 195.26/171.47 lexString1 vu57 = lexString10 vu57; 195.26/171.47 ; 195.26/171.47 lexString10 (ch,t) = concatMap (lexString0 ch) (lexString t); 195.26/171.47 lexString10 wv = []; 195.26/171.47 } 195.26/171.47 ; 195.26/171.47 lex (c : s)|isSingle c(c : [],s) : []|isSym cconcatMap (lex2 c) (span isSym s : [])|isAlpha cconcatMap (lex3 c) (span isIdChar s : [])|isDigit cconcatMap (lex5 c) (span isDigit s : [])|otherwise[] where { 195.26/171.47 isIdChar c = isAlphaNum c || c `elem` '_' : ''' : []; 195.26/171.47 ; 195.26/171.47 isSingle c = c `elem` ',' : ';' : '(' : ')' : '[' : ']' : '{' : '}' : '_' : '`' : []; 195.26/171.47 ; 195.26/171.47 isSym c = c `elem` '!' : '@' : '#' : '$' : '%' : '&' : '*' : '+' : '.' : '/' : '<' : '=' : '>' : '?' : '\' : '^' : '|' : ':' : '-' : '~' : []; 195.26/171.47 ; 195.26/171.47 lex2 c vu59 = lex20 c vu59; 195.26/171.47 ; 195.26/171.47 lex20 c (sym,t) = (c : sym,t) : []; 195.26/171.47 lex20 c xz = []; 195.26/171.47 ; 195.26/171.47 lex3 c vu60 = lex30 c vu60; 195.26/171.47 ; 195.26/171.47 lex30 c (nam,t) = (c : nam,t) : []; 195.26/171.47 lex30 c yu = []; 195.26/171.47 ; 195.26/171.47 lex4 c ds vu61 = lex40 c ds vu61; 195.26/171.47 ; 195.26/171.47 lex40 c ds (fe,t) = (c : ds ++ fe,t) : []; 195.26/171.47 lex40 c ds xx = []; 195.26/171.47 ; 195.26/171.47 lex5 c vu62 = lex50 c vu62; 195.26/171.47 ; 195.26/171.47 lex50 c (ds,s) = concatMap (lex4 c ds) (lexFracExp s); 195.26/171.47 lex50 c xy = []; 195.26/171.47 ; 195.26/171.47 lexExp (e : s)|e `elem` 'e' : 'E' : []concatMap (lexExp1 e) (s : []) ++ concatMap (lexExp2 e) (lexDigits s); 195.26/171.47 lexExp s = ([],s) : []; 195.26/171.47 ; 195.26/171.47 lexExp0 e c vu65 = lexExp00 e c vu65; 195.26/171.47 ; 195.26/171.47 lexExp00 e c (ds,u) = (e : c : ds,u) : []; 195.26/171.47 lexExp00 e c wy = []; 195.26/171.47 ; 195.26/171.47 lexExp1 e vu66 = lexExp10 e vu66; 195.26/171.47 ; 195.26/171.47 lexExp10 e (c : t) = lexExp100 e c t (c `elem` '+' : '-' : []); 195.26/171.47 lexExp10 e xu = []; 195.26/171.47 ; 195.26/171.47 lexExp100 e c t True = concatMap (lexExp0 e c) (lexDigits t); 195.26/171.47 lexExp100 e c t False = []; 195.26/171.47 ; 195.26/171.47 lexExp2 e vu67 = lexExp20 e vu67; 195.26/171.47 ; 195.26/171.47 lexExp20 e (ds,t) = (e : ds,t) : []; 195.26/171.47 lexExp20 e wz = []; 195.26/171.47 ; 195.26/171.47 lexFracExp ('.' : c : cs)|isDigit cconcatMap lexFracExp1 (lexDigits (c : cs)); 195.26/171.47 lexFracExp s = lexExp s; 195.26/171.47 ; 195.26/171.47 lexFracExp0 ds vu63 = lexFracExp00 ds vu63; 195.26/171.47 ; 195.26/171.47 lexFracExp00 ds (e,u) = ('.' : ds ++ e,u) : []; 195.26/171.47 lexFracExp00 ds xw = []; 195.26/171.47 ; 195.26/171.47 lexFracExp1 vu64 = lexFracExp10 vu64; 195.26/171.47 ; 195.26/171.47 lexFracExp10 (ds,t) = concatMap (lexFracExp0 ds) (lexExp t); 195.26/171.47 lexFracExp10 xv = []; 195.26/171.47 } 195.26/171.47 ; 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lex [] = lex19 []; 195.26/171.47 lex (c : s) = lex18 (c : s); 195.26/171.47 lex (xxz : s) = lex16 (xxz : s); 195.26/171.47 lex (xxu : s) = lex14 (xxu : s); 195.26/171.47 lex (c : s) = lex12 (c : s); 195.26/171.47 " 195.26/171.47 "lex12 (c : s) = lex11 c s (isSingle c) where { 195.26/171.47 isIdChar c = isAlphaNum c || c `elem` '_' : ''' : []; 195.26/171.47 ; 195.26/171.47 isSingle c = c `elem` ',' : ';' : '(' : ')' : '[' : ']' : '{' : '}' : '_' : '`' : []; 195.26/171.47 ; 195.26/171.47 isSym c = c `elem` '!' : '@' : '#' : '$' : '%' : '&' : '*' : '+' : '.' : '/' : '<' : '=' : '>' : '?' : '\' : '^' : '|' : ':' : '-' : '~' : []; 195.26/171.47 ; 195.26/171.47 lex11 c s True = (c : [],s) : []; 195.26/171.47 lex11 c s False = lex9 c s (isSym c); 195.26/171.47 ; 195.26/171.47 lex2 c vu59 = lex20 c vu59; 195.26/171.47 ; 195.26/171.47 lex20 c (sym,t) = (c : sym,t) : []; 195.26/171.47 lex20 c xz = []; 195.26/171.47 ; 195.26/171.47 lex3 c vu60 = lex30 c vu60; 195.26/171.47 ; 195.26/171.47 lex30 c (nam,t) = (c : nam,t) : []; 195.26/171.47 lex30 c yu = []; 195.26/171.47 ; 195.26/171.47 lex4 c ds vu61 = lex40 c ds vu61; 195.26/171.47 ; 195.26/171.47 lex40 c ds (fe,t) = (c : ds ++ fe,t) : []; 195.26/171.47 lex40 c ds xx = []; 195.26/171.47 ; 195.26/171.47 lex5 c vu62 = lex50 c vu62; 195.26/171.47 ; 195.26/171.47 lex50 c (ds,s) = concatMap (lex4 c ds) (lexFracExp s); 195.26/171.47 lex50 c xy = []; 195.26/171.47 ; 195.26/171.47 lex6 c s True = []; 195.26/171.47 ; 195.26/171.47 lex7 c s True = concatMap (lex5 c) (span isDigit s : []); 195.26/171.47 lex7 c s False = lex6 c s otherwise; 195.26/171.47 ; 195.26/171.47 lex8 c s True = concatMap (lex3 c) (span isIdChar s : []); 195.26/171.47 lex8 c s False = lex7 c s (isDigit c); 195.26/171.47 ; 195.26/171.47 lex9 c s True = concatMap (lex2 c) (span isSym s : []); 195.26/171.47 lex9 c s False = lex8 c s (isAlpha c); 195.26/171.47 ; 195.26/171.47 lexExp (e : s) = lexExp5 (e : s); 195.26/171.47 lexExp s = lexExp3 s; 195.26/171.47 ; 195.26/171.47 lexExp0 e c vu65 = lexExp00 e c vu65; 195.26/171.47 ; 195.26/171.47 lexExp00 e c (ds,u) = (e : c : ds,u) : []; 195.26/171.47 lexExp00 e c wy = []; 195.26/171.47 ; 195.26/171.47 lexExp1 e vu66 = lexExp10 e vu66; 195.26/171.47 ; 195.26/171.47 lexExp10 e (c : t) = lexExp100 e c t (c `elem` '+' : '-' : []); 195.26/171.47 lexExp10 e xu = []; 195.26/171.47 ; 195.26/171.47 lexExp100 e c t True = concatMap (lexExp0 e c) (lexDigits t); 195.26/171.47 lexExp100 e c t False = []; 195.26/171.47 ; 195.26/171.47 lexExp2 e vu67 = lexExp20 e vu67; 195.26/171.47 ; 195.26/171.47 lexExp20 e (ds,t) = (e : ds,t) : []; 195.26/171.47 lexExp20 e wz = []; 195.26/171.47 ; 195.26/171.47 lexExp3 s = ([],s) : []; 195.26/171.47 ; 195.26/171.47 lexExp4 e s True = concatMap (lexExp1 e) (s : []) ++ concatMap (lexExp2 e) (lexDigits s); 195.26/171.47 lexExp4 e s False = lexExp3 (e : s); 195.26/171.47 ; 195.26/171.47 lexExp5 (e : s) = lexExp4 e s (e `elem` 'e' : 'E' : []); 195.26/171.47 lexExp5 xvv = lexExp3 xvv; 195.26/171.47 ; 195.26/171.47 lexFracExp (xvx : xwu) = lexFracExp5 (xvx : xwu); 195.26/171.47 lexFracExp s = lexFracExp2 s; 195.26/171.47 ; 195.26/171.47 lexFracExp0 ds vu63 = lexFracExp00 ds vu63; 195.26/171.47 ; 195.26/171.47 lexFracExp00 ds (e,u) = ('.' : ds ++ e,u) : []; 195.26/171.47 lexFracExp00 ds xw = []; 195.26/171.47 ; 195.26/171.47 lexFracExp1 vu64 = lexFracExp10 vu64; 195.26/171.47 ; 195.26/171.47 lexFracExp10 (ds,t) = concatMap (lexFracExp0 ds) (lexExp t); 195.26/171.47 lexFracExp10 xv = []; 195.26/171.47 ; 195.26/171.47 lexFracExp2 s = lexExp s; 195.26/171.47 ; 195.26/171.47 lexFracExp3 xvx c cs True = concatMap lexFracExp1 (lexDigits (c : cs)); 195.26/171.47 lexFracExp3 xvx c cs False = lexFracExp2 (xvx : c : cs); 195.26/171.47 ; 195.26/171.47 lexFracExp4 True (xvx : c : cs) = lexFracExp3 xvx c cs (isDigit c); 195.26/171.47 lexFracExp4 xwv xww = lexFracExp2 xww; 195.26/171.47 ; 195.26/171.47 lexFracExp5 (xvx : xwu) = lexFracExp4 (xvx == '.') (xvx : xwu); 195.26/171.47 lexFracExp5 xwx = lexFracExp2 xwx; 195.26/171.47 } 195.26/171.47 ; 195.26/171.47 " 195.26/171.47 "lex13 True (xxu : s) = concatMap lex1 (lexString s) where { 195.26/171.47 lex1 vu55 = lex10 vu55; 195.26/171.47 ; 195.26/171.47 lex10 (str,t) = ('"' : str,t) : []; 195.26/171.47 lex10 wx = []; 195.26/171.47 ; 195.26/171.47 lexStrItem (wyx : wzv) = lexStrItem7 (wyx : wzv); 195.26/171.47 lexStrItem (wxv : wxy) = lexStrItem4 (wxv : wxy); 195.26/171.47 lexStrItem s = lexStrItem1 s; 195.26/171.47 ; 195.26/171.47 lexStrItem0 vu58 = lexStrItem00 vu58; 195.26/171.47 ; 195.26/171.47 lexStrItem00 (xuw : t) = lexStrItem002 (xuw : t); 195.26/171.47 lexStrItem00 ww = lexStrItem000 ww; 195.26/171.47 ; 195.26/171.47 lexStrItem000 ww = []; 195.26/171.47 ; 195.26/171.47 lexStrItem001 True (xuw : t) = ([],t) : []; 195.26/171.47 lexStrItem001 xux xuy = lexStrItem000 xuy; 195.26/171.47 ; 195.26/171.47 lexStrItem002 (xuw : t) = lexStrItem001 (xuw == '\') (xuw : t); 195.26/171.47 lexStrItem002 xuz = lexStrItem000 xuz; 195.26/171.47 ; 195.26/171.47 lexStrItem1 s = lexLitChar s; 195.26/171.47 ; 195.26/171.47 lexStrItem2 wxv c s True = concatMap lexStrItem0 (dropWhile isSpace s : []); 195.26/171.47 lexStrItem2 wxv c s False = lexStrItem1 (wxv : c : s); 195.26/171.47 ; 195.26/171.47 lexStrItem3 True (wxv : c : s) = lexStrItem2 wxv c s (isSpace c); 195.26/171.47 lexStrItem3 wxz wyu = lexStrItem1 wyu; 195.26/171.47 ; 195.26/171.47 lexStrItem4 (wxv : wxy) = lexStrItem3 (wxv == '\') (wxv : wxy); 195.26/171.47 lexStrItem4 wyv = lexStrItem1 wyv; 195.26/171.47 ; 195.26/171.47 lexStrItem5 True (wyx : wyz : s) = ('\' : '&' : [],s) : []; 195.26/171.47 lexStrItem5 wzw wzx = lexStrItem4 wzx; 195.26/171.47 ; 195.26/171.47 lexStrItem6 True (wyx : wyz : s) = lexStrItem5 (wyz == '&') (wyx : wyz : s); 195.26/171.47 lexStrItem6 wzy wzz = lexStrItem4 wzz; 195.26/171.47 ; 195.26/171.47 lexStrItem7 (wyx : wzv) = lexStrItem6 (wyx == '\') (wyx : wzv); 195.26/171.47 lexStrItem7 xuu = lexStrItem4 xuu; 195.26/171.47 ; 195.26/171.47 lexString (www : s) = lexString4 (www : s); 195.26/171.47 lexString s = lexString2 s; 195.26/171.47 ; 195.26/171.47 lexString0 ch vu56 = lexString00 ch vu56; 195.26/171.47 ; 195.26/171.47 lexString00 ch (str,u) = (ch ++ str,u) : []; 195.26/171.47 lexString00 ch wu = []; 195.26/171.47 ; 195.26/171.47 lexString1 vu57 = lexString10 vu57; 195.26/171.47 ; 195.26/171.47 lexString10 (ch,t) = concatMap (lexString0 ch) (lexString t); 195.26/171.47 lexString10 wv = []; 195.26/171.47 ; 195.26/171.47 lexString2 s = concatMap lexString1 (lexStrItem s); 195.26/171.47 ; 195.26/171.47 lexString3 True (www : s) = ('"' : [],s) : []; 195.26/171.47 lexString3 wwx wwy = lexString2 wwy; 195.26/171.47 ; 195.26/171.47 lexString4 (www : s) = lexString3 (www == '"') (www : s); 195.26/171.47 lexString4 wwz = lexString2 wwz; 195.26/171.47 } 195.26/171.47 ; 195.26/171.47 lex13 xxv xxw = lex12 xxw; 195.26/171.47 " 195.26/171.47 "lex14 (xxu : s) = lex13 (xxu == '"') (xxu : s); 195.26/171.47 lex14 xxx = lex12 xxx; 195.26/171.47 " 195.26/171.47 "lex15 True (xxz : s) = concatMap lex0 (lexLitChar s); 195.26/171.47 lex15 xyu xyv = lex14 xyv; 195.26/171.47 " 195.26/171.47 "lex16 (xxz : s) = lex15 (xxz == ''') (xxz : s); 195.26/171.47 lex16 xyw = lex14 xyw; 195.26/171.47 " 195.26/171.47 "lex17 c s True = lex (dropWhile isSpace s); 195.26/171.47 lex17 c s False = lex16 (c : s); 195.26/171.47 " 195.26/171.47 "lex18 (c : s) = lex17 c s (isSpace c); 195.26/171.47 lex18 xyy = lex16 xyy; 195.26/171.47 " 195.26/171.47 "lex19 [] = ([],[]) : []; 195.26/171.47 lex19 xzu = lex18 xzu; 195.26/171.47 " 195.26/171.47 The following Function with conditions 195.26/171.47 "readsPrec10 (''' : s,t) = concatMap (readsPrec0 t) (readLitChar s); 195.26/171.47 readsPrec10 yw = []; 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "readsPrec10 (xzx : s,t) = readsPrec102 (xzx : s,t); 195.26/171.47 readsPrec10 yw = readsPrec100 yw; 195.26/171.47 " 195.26/171.47 "readsPrec100 yw = []; 195.26/171.47 " 195.26/171.47 "readsPrec101 True (xzx : s,t) = concatMap (readsPrec0 t) (readLitChar s); 195.26/171.47 readsPrec101 xzy xzz = readsPrec100 xzz; 195.26/171.47 " 195.26/171.47 "readsPrec102 (xzx : s,t) = readsPrec101 (xzx == ''') (xzx : s,t); 195.26/171.47 readsPrec102 yuu = readsPrec100 yuu; 195.26/171.47 " 195.26/171.47 The following Function with conditions 195.26/171.47 "undefined |Falseundefined; 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "undefined = undefined1; 195.26/171.47 " 195.26/171.47 "undefined0 True = undefined; 195.26/171.47 " 195.26/171.47 "undefined1 = undefined0 False; 195.26/171.47 " 195.26/171.47 The following Function with conditions 195.26/171.47 "dropWhile p [] = []; 195.26/171.47 dropWhile p (yy : yz)|p yydropWhile p yz|otherwiseyy : yz; 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "dropWhile p [] = dropWhile3 p []; 195.26/171.47 dropWhile p (yy : yz) = dropWhile2 p (yy : yz); 195.26/171.47 " 195.26/171.47 "dropWhile0 p yy yz True = yy : yz; 195.26/171.47 " 195.26/171.47 "dropWhile1 p yy yz True = dropWhile p yz; 195.26/171.47 dropWhile1 p yy yz False = dropWhile0 p yy yz otherwise; 195.26/171.47 " 195.26/171.47 "dropWhile2 p (yy : yz) = dropWhile1 p yy yz (p yy); 195.26/171.47 " 195.26/171.47 "dropWhile3 p [] = []; 195.26/171.47 dropWhile3 yux yuy = dropWhile2 yux yuy; 195.26/171.47 " 195.26/171.47 The following Function with conditions 195.26/171.47 "lex00 (ch,''' : t) = lex000 ch t (ch /= ''' : []); 195.26/171.47 lex00 zv = []; 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "lex00 (ch,yvv : t) = lex003 (ch,yvv : t); 195.26/171.47 lex00 zv = lex001 zv; 195.26/171.47 " 195.26/171.47 "lex001 zv = []; 195.26/171.47 " 195.26/171.47 "lex002 True (ch,yvv : t) = lex000 ch t (ch /= ''' : []); 195.26/171.47 lex002 yvw yvx = lex001 yvx; 195.26/171.47 " 195.26/171.47 "lex003 (ch,yvv : t) = lex002 (yvv == ''') (ch,yvv : t); 195.26/171.47 lex003 yvy = lex001 yvy; 195.26/171.47 " 195.26/171.47 The following Function with conditions 195.26/171.47 "span p [] = ([],[]); 195.26/171.47 span p (zw : zx)|p zw(zw : ys,zs)|otherwise([],zw : zx) where { 195.26/171.47 vu43 = span p zx; 195.26/171.47 ; 195.26/171.47 ys = ys0 vu43; 195.26/171.47 ; 195.26/171.47 ys0 (ys,zz) = ys; 195.26/171.47 ; 195.26/171.47 zs = zs0 vu43; 195.26/171.47 ; 195.26/171.47 zs0 (zy,zs) = zs; 195.26/171.47 } 195.26/171.47 ; 195.26/171.47 " 195.26/171.47 is transformed to 195.26/171.47 "span p [] = span3 p []; 195.26/171.48 span p (zw : zx) = span2 p (zw : zx); 195.26/171.48 " 195.26/171.48 "span2 p (zw : zx) = span1 p zw zx (p zw) where { 195.26/171.48 span0 p zw zx True = ([],zw : zx); 195.26/171.48 ; 195.26/171.48 span1 p zw zx True = (zw : ys,zs); 195.26/171.48 span1 p zw zx False = span0 p zw zx otherwise; 195.26/171.48 ; 195.26/171.48 vu43 = span p zx; 195.26/171.48 ; 195.26/171.48 ys = ys0 vu43; 195.26/171.48 ; 195.26/171.48 ys0 (ys,zz) = ys; 195.26/171.48 ; 195.26/171.48 zs = zs0 vu43; 195.26/171.48 ; 195.26/171.48 zs0 (zy,zs) = zs; 195.26/171.48 } 195.26/171.48 ; 195.26/171.48 " 195.26/171.48 "span3 p [] = ([],[]); 195.26/171.48 span3 ywv yww = span2 ywv yww; 195.26/171.48 " 195.26/171.48 The following Function with conditions 195.26/171.48 "readEsc ('a' : s) = ('\7',s) : []; 195.26/171.48 readEsc ('b' : s) = ('\8',s) : []; 195.26/171.48 readEsc ('f' : s) = ('\12',s) : []; 195.26/171.48 readEsc ('n' : s) = ('\10',s) : []; 195.26/171.48 readEsc ('r' : s) = ('\13',s) : []; 195.26/171.48 readEsc ('t' : s) = ('\9',s) : []; 195.26/171.48 readEsc ('v' : s) = ('\11',s) : []; 195.26/171.48 readEsc ('\' : s) = ('\',s) : []; 195.26/171.48 readEsc ('"' : s) = ('"',s) : []; 195.26/171.48 readEsc (''' : s) = (''',s) : []; 195.26/171.48 readEsc ('^' : c : s)|c >= '@' && c <= '_'(toEnum (fromEnum c - fromEnum '@'),s) : []; 195.26/171.48 readEsc (vvu : vvv)|isDigit vvuconcatMap readEsc0 (readDec (vvu : vvv)); 195.26/171.48 readEsc ('o' : s) = concatMap readEsc1 (readOct s); 195.26/171.48 readEsc ('x' : s) = concatMap readEsc2 (readHex s); 195.26/171.48 readEsc (vvx : vvy)|isUpper vvxlet { 195.26/171.48 readEsc3 c vu74 = readEsc30 c vu74; 195.26/171.48 ; 195.26/171.48 readEsc30 c ([],s') = (c,s') : []; 195.26/171.48 readEsc30 c vwv = []; 195.26/171.48 ; 195.26/171.48 readEsc4 s vu75 = readEsc40 s vu75; 195.26/171.48 ; 195.26/171.48 readEsc40 s (c,mne) = concatMap (readEsc3 c) (lexmatch mne s : []); 195.26/171.48 readEsc40 s vwu = []; 195.26/171.48 ; 195.26/171.48 readEsc5 (pr : vvz) = pr : []; 195.26/171.48 readEsc5 [] = []; 195.26/171.48 ; 195.26/171.48 table = ('\127','D' : 'E' : 'L' : []) : asciiTab; 195.26/171.48 } in readEsc5 (concatMap (readEsc4 (vvx : vvy)) table); 195.26/171.48 readEsc vww = []; 195.26/171.48 " 195.26/171.48 is transformed to 195.26/171.48 "readEsc (vuvz : s) = readEsc41 (vuvz : s); 195.26/171.48 readEsc (vuvu : s) = readEsc38 (vuvu : s); 195.26/171.48 readEsc (vuuv : s) = readEsc36 (vuuv : s); 195.26/171.48 readEsc (zzw : s) = readEsc34 (zzw : s); 195.26/171.48 readEsc (zyx : s) = readEsc32 (zyx : s); 195.26/171.48 readEsc (zxy : s) = readEsc29 (zxy : s); 195.26/171.48 readEsc (zwz : s) = readEsc27 (zwz : s); 195.26/171.48 readEsc (zwu : s) = readEsc25 (zwu : s); 195.26/171.48 readEsc (zvv : s) = readEsc23 (zvv : s); 195.26/171.48 readEsc (zuw : s) = readEsc21 (zuw : s); 195.26/171.48 readEsc (yzu : yzx) = readEsc18 (yzu : yzx); 195.26/171.48 readEsc (vvu : vvv) = readEsc15 (vvu : vvv); 195.26/171.48 readEsc (yxz : s) = readEsc13 (yxz : s); 195.26/171.48 readEsc (yxu : s) = readEsc11 (yxu : s); 195.26/171.48 readEsc (vvx : vvy) = readEsc8 (vvx : vvy); 195.26/171.48 readEsc vww = readEsc6 vww; 195.26/171.48 " 195.26/171.48 "readEsc6 vww = []; 195.26/171.48 " 195.26/171.48 "readEsc7 vvx vvy True = let { 195.26/171.48 readEsc3 c vu74 = readEsc30 c vu74; 195.26/171.48 ; 195.26/171.48 readEsc30 c ([],s') = (c,s') : []; 195.26/171.48 readEsc30 c vwv = []; 195.26/171.48 ; 195.26/171.48 readEsc4 s vu75 = readEsc40 s vu75; 195.26/171.48 ; 195.26/171.48 readEsc40 s (c,mne) = concatMap (readEsc3 c) (lexmatch mne s : []); 195.26/171.48 readEsc40 s vwu = []; 195.26/171.48 ; 195.26/171.48 readEsc5 (pr : vvz) = pr : []; 195.26/171.48 readEsc5 [] = []; 195.26/171.48 ; 195.26/171.48 table = ('\127','D' : 'E' : 'L' : []) : asciiTab; 195.26/171.48 } in readEsc5 (concatMap (readEsc4 (vvx : vvy)) table); 195.26/171.48 readEsc7 vvx vvy False = readEsc6 (vvx : vvy); 195.26/171.48 " 195.26/171.48 "readEsc8 (vvx : vvy) = readEsc7 vvx vvy (isUpper vvx); 195.26/171.48 readEsc8 ywy = readEsc6 ywy; 195.26/171.48 " 195.26/171.48 "readEsc9 True (yxu : s) = concatMap readEsc2 (readHex s); 195.26/171.48 readEsc9 yxv yxw = readEsc8 yxw; 195.26/171.48 " 195.26/171.48 "readEsc11 (yxu : s) = readEsc9 (yxu == 'x') (yxu : s); 195.26/171.48 readEsc11 yxx = readEsc8 yxx; 195.26/171.48 " 195.26/171.48 "readEsc12 True (yxz : s) = concatMap readEsc1 (readOct s); 195.26/171.48 readEsc12 yyu yyv = readEsc11 yyv; 195.26/171.48 " 195.26/171.48 "readEsc13 (yxz : s) = readEsc12 (yxz == 'o') (yxz : s); 195.26/171.48 readEsc13 yyw = readEsc11 yyw; 195.26/171.48 " 195.26/171.48 "readEsc14 vvu vvv True = concatMap readEsc0 (readDec (vvu : vvv)); 195.26/171.48 readEsc14 vvu vvv False = readEsc13 (vvu : vvv); 195.26/171.48 " 195.26/171.48 "readEsc15 (vvu : vvv) = readEsc14 vvu vvv (isDigit vvu); 195.26/171.48 readEsc15 yyy = readEsc13 yyy; 195.26/171.48 " 195.26/171.48 "readEsc16 yzu c s True = (toEnum (fromEnum c - fromEnum '@'),s) : []; 195.26/171.48 readEsc16 yzu c s False = readEsc15 (yzu : c : s); 195.26/171.48 " 195.26/171.48 "readEsc17 True (yzu : c : s) = readEsc16 yzu c s (c >= '@' && c <= '_'); 195.26/171.48 readEsc17 yzy yzz = readEsc15 yzz; 195.26/171.48 " 195.26/171.48 "readEsc18 (yzu : yzx) = readEsc17 (yzu == '^') (yzu : yzx); 195.26/171.48 readEsc18 zuu = readEsc15 zuu; 195.26/171.48 " 195.26/171.48 "readEsc19 True (zuw : s) = (''',s) : []; 195.26/171.48 readEsc19 zux zuy = readEsc18 zuy; 195.26/171.48 " 195.26/171.48 "readEsc21 (zuw : s) = readEsc19 (zuw == ''') (zuw : s); 195.26/171.48 readEsc21 zuz = readEsc18 zuz; 195.26/171.48 " 195.26/171.48 "readEsc22 True (zvv : s) = ('"',s) : []; 195.26/171.48 readEsc22 zvw zvx = readEsc21 zvx; 195.26/171.48 " 195.26/171.48 "readEsc23 (zvv : s) = readEsc22 (zvv == '"') (zvv : s); 195.26/171.48 readEsc23 zvy = readEsc21 zvy; 195.26/171.48 " 195.26/171.48 "readEsc24 True (zwu : s) = ('\',s) : []; 195.26/171.48 readEsc24 zwv zww = readEsc23 zww; 195.26/171.48 " 195.26/171.48 "readEsc25 (zwu : s) = readEsc24 (zwu == '\') (zwu : s); 195.26/171.48 readEsc25 zwx = readEsc23 zwx; 195.26/171.48 " 195.26/171.48 "readEsc26 True (zwz : s) = ('\11',s) : []; 195.26/171.48 readEsc26 zxu zxv = readEsc25 zxv; 195.26/171.48 " 195.26/171.48 "readEsc27 (zwz : s) = readEsc26 (zwz == 'v') (zwz : s); 195.26/171.48 readEsc27 zxw = readEsc25 zxw; 195.26/171.48 " 195.26/171.48 "readEsc28 True (zxy : s) = ('\9',s) : []; 195.26/171.48 readEsc28 zxz zyu = readEsc27 zyu; 195.26/171.48 " 195.26/171.48 "readEsc29 (zxy : s) = readEsc28 (zxy == 't') (zxy : s); 195.26/171.48 readEsc29 zyv = readEsc27 zyv; 195.26/171.48 " 195.26/171.48 "readEsc31 True (zyx : s) = ('\13',s) : []; 195.26/171.48 readEsc31 zyy zyz = readEsc29 zyz; 195.26/171.48 " 195.26/171.48 "readEsc32 (zyx : s) = readEsc31 (zyx == 'r') (zyx : s); 195.26/171.48 readEsc32 zzu = readEsc29 zzu; 195.26/171.48 " 195.26/171.48 "readEsc33 True (zzw : s) = ('\10',s) : []; 195.26/171.48 readEsc33 zzx zzy = readEsc32 zzy; 195.26/171.48 " 195.26/171.48 "readEsc34 (zzw : s) = readEsc33 (zzw == 'n') (zzw : s); 195.26/171.48 readEsc34 zzz = readEsc32 zzz; 195.26/171.48 " 195.26/171.48 "readEsc35 True (vuuv : s) = ('\12',s) : []; 195.26/171.48 readEsc35 vuuw vuux = readEsc34 vuux; 195.26/171.48 " 195.26/171.48 "readEsc36 (vuuv : s) = readEsc35 (vuuv == 'f') (vuuv : s); 195.26/171.48 readEsc36 vuuy = readEsc34 vuuy; 195.26/171.48 " 195.26/171.48 "readEsc37 True (vuvu : s) = ('\8',s) : []; 195.26/171.48 readEsc37 vuvv vuvw = readEsc36 vuvw; 195.26/171.48 " 195.26/171.48 "readEsc38 (vuvu : s) = readEsc37 (vuvu == 'b') (vuvu : s); 195.26/171.48 readEsc38 vuvx = readEsc36 vuvx; 195.26/171.48 " 195.26/171.48 "readEsc39 True (vuvz : s) = ('\7',s) : []; 195.26/171.48 readEsc39 vuwu vuwv = readEsc38 vuwv; 195.26/171.48 " 195.26/171.48 "readEsc41 (vuvz : s) = readEsc39 (vuvz == 'a') (vuvz : s); 195.26/171.48 readEsc41 vuww = readEsc38 vuww; 195.26/171.48 " 195.26/171.48 The following Function with conditions 195.26/171.48 "readLitChar ('\' : s) = readEsc s where { 195.26/171.48 readEsc ('a' : s) = ('\7',s) : []; 195.26/171.48 readEsc ('b' : s) = ('\8',s) : []; 195.26/171.48 readEsc ('f' : s) = ('\12',s) : []; 195.26/171.48 readEsc ('n' : s) = ('\10',s) : []; 195.26/171.48 readEsc ('r' : s) = ('\13',s) : []; 195.26/171.48 readEsc ('t' : s) = ('\9',s) : []; 195.26/171.48 readEsc ('v' : s) = ('\11',s) : []; 195.26/171.48 readEsc ('\' : s) = ('\',s) : []; 195.26/171.48 readEsc ('"' : s) = ('"',s) : []; 195.26/171.48 readEsc (''' : s) = (''',s) : []; 195.26/171.48 readEsc ('^' : c : s)|c >= '@' && c <= '_'(toEnum (fromEnum c - fromEnum '@'),s) : []; 195.26/171.48 readEsc (vvu : vvv)|isDigit vvuconcatMap readEsc0 (readDec (vvu : vvv)); 195.26/171.48 readEsc ('o' : s) = concatMap readEsc1 (readOct s); 195.26/171.48 readEsc ('x' : s) = concatMap readEsc2 (readHex s); 195.26/171.48 readEsc (vvx : vvy)|isUpper vvxlet { 195.26/171.48 readEsc3 c vu74 = readEsc30 c vu74; 195.26/171.48 ; 195.26/171.48 readEsc30 c ([],s') = (c,s') : []; 195.26/171.48 readEsc30 c vwv = []; 195.26/171.48 ; 195.26/171.48 readEsc4 s vu75 = readEsc40 s vu75; 195.26/171.48 ; 195.26/171.48 readEsc40 s (c,mne) = concatMap (readEsc3 c) (lexmatch mne s : []); 195.26/171.48 readEsc40 s vwu = []; 195.26/171.48 ; 195.26/171.48 readEsc5 (pr : vvz) = pr : []; 195.26/171.48 readEsc5 [] = []; 195.26/171.48 ; 195.26/171.48 table = ('\127','D' : 'E' : 'L' : []) : asciiTab; 195.26/171.48 } in readEsc5 (concatMap (readEsc4 (vvx : vvy)) table); 195.26/171.48 readEsc vww = []; 195.26/171.48 ; 195.26/171.48 readEsc0 vu71 = readEsc00 vu71; 195.26/171.48 ; 195.26/171.48 readEsc00 (n,t) = (toEnum n,t) : []; 195.26/171.48 readEsc00 vwx = []; 195.26/171.48 ; 195.26/171.48 readEsc1 vu72 = readEsc10 vu72; 195.26/171.48 ; 195.26/171.48 readEsc10 (n,t) = (toEnum n,t) : []; 195.26/171.48 readEsc10 vwy = []; 195.26/171.48 ; 195.26/171.48 readEsc2 vu73 = readEsc20 vu73; 195.26/171.48 ; 195.26/171.48 readEsc20 (n,t) = (toEnum n,t) : []; 195.26/171.48 readEsc20 vwz = []; 195.26/171.48 } 195.26/171.48 ; 195.26/171.48 readLitChar (c : s) = (c,s) : []; 195.26/171.48 " 195.26/171.48 is transformed to 195.26/171.48 "readLitChar (vuwz : s) = readLitChar2 (vuwz : s); 195.26/171.48 readLitChar (c : s) = readLitChar0 (c : s); 195.26/171.48 " 195.26/171.48 "readLitChar0 (c : s) = (c,s) : []; 195.26/171.48 " 195.26/171.48 "readLitChar1 True (vuwz : s) = readEsc s where { 195.26/171.48 readEsc (vuvz : s) = readEsc41 (vuvz : s); 195.26/171.48 readEsc (vuvu : s) = readEsc38 (vuvu : s); 195.26/171.48 readEsc (vuuv : s) = readEsc36 (vuuv : s); 195.26/171.48 readEsc (zzw : s) = readEsc34 (zzw : s); 195.26/171.48 readEsc (zyx : s) = readEsc32 (zyx : s); 195.26/171.48 readEsc (zxy : s) = readEsc29 (zxy : s); 195.26/171.48 readEsc (zwz : s) = readEsc27 (zwz : s); 195.26/171.48 readEsc (zwu : s) = readEsc25 (zwu : s); 195.26/171.48 readEsc (zvv : s) = readEsc23 (zvv : s); 195.26/171.48 readEsc (zuw : s) = readEsc21 (zuw : s); 195.26/171.48 readEsc (yzu : yzx) = readEsc18 (yzu : yzx); 195.26/171.48 readEsc (vvu : vvv) = readEsc15 (vvu : vvv); 195.26/171.48 readEsc (yxz : s) = readEsc13 (yxz : s); 195.26/171.48 readEsc (yxu : s) = readEsc11 (yxu : s); 195.26/171.48 readEsc (vvx : vvy) = readEsc8 (vvx : vvy); 195.26/171.48 readEsc vww = readEsc6 vww; 195.26/171.48 ; 195.26/171.48 readEsc0 vu71 = readEsc00 vu71; 195.26/171.48 ; 195.26/171.48 readEsc00 (n,t) = (toEnum n,t) : []; 195.26/171.48 readEsc00 vwx = []; 195.26/171.48 ; 195.26/171.48 readEsc1 vu72 = readEsc10 vu72; 195.26/171.48 ; 195.26/171.48 readEsc10 (n,t) = (toEnum n,t) : []; 195.26/171.48 readEsc10 vwy = []; 195.26/171.48 ; 195.26/171.48 readEsc11 (yxu : s) = readEsc9 (yxu == 'x') (yxu : s); 195.26/171.48 readEsc11 yxx = readEsc8 yxx; 195.26/171.48 ; 195.26/171.48 readEsc12 True (yxz : s) = concatMap readEsc1 (readOct s); 195.26/171.48 readEsc12 yyu yyv = readEsc11 yyv; 195.26/171.48 ; 195.26/171.48 readEsc13 (yxz : s) = readEsc12 (yxz == 'o') (yxz : s); 195.26/171.48 readEsc13 yyw = readEsc11 yyw; 195.26/171.48 ; 195.26/171.48 readEsc14 vvu vvv True = concatMap readEsc0 (readDec (vvu : vvv)); 195.26/171.48 readEsc14 vvu vvv False = readEsc13 (vvu : vvv); 195.26/171.48 ; 195.26/171.48 readEsc15 (vvu : vvv) = readEsc14 vvu vvv (isDigit vvu); 195.26/171.48 readEsc15 yyy = readEsc13 yyy; 195.26/171.48 ; 195.26/171.48 readEsc16 yzu c s True = (toEnum (fromEnum c - fromEnum '@'),s) : []; 195.26/171.48 readEsc16 yzu c s False = readEsc15 (yzu : c : s); 195.26/171.48 ; 195.26/171.48 readEsc17 True (yzu : c : s) = readEsc16 yzu c s (c >= '@' && c <= '_'); 195.26/171.48 readEsc17 yzy yzz = readEsc15 yzz; 195.26/171.48 ; 195.26/171.48 readEsc18 (yzu : yzx) = readEsc17 (yzu == '^') (yzu : yzx); 195.26/171.48 readEsc18 zuu = readEsc15 zuu; 195.26/171.48 ; 195.26/171.48 readEsc19 True (zuw : s) = (''',s) : []; 195.26/171.48 readEsc19 zux zuy = readEsc18 zuy; 195.26/171.48 ; 195.26/171.48 readEsc2 vu73 = readEsc20 vu73; 195.26/171.48 ; 195.26/171.48 readEsc20 (n,t) = (toEnum n,t) : []; 195.26/171.48 readEsc20 vwz = []; 195.26/171.48 ; 195.26/171.48 readEsc21 (zuw : s) = readEsc19 (zuw == ''') (zuw : s); 195.26/171.48 readEsc21 zuz = readEsc18 zuz; 195.26/171.48 ; 195.26/171.48 readEsc22 True (zvv : s) = ('"',s) : []; 195.26/171.48 readEsc22 zvw zvx = readEsc21 zvx; 195.26/171.48 ; 195.26/171.48 readEsc23 (zvv : s) = readEsc22 (zvv == '"') (zvv : s); 195.26/171.48 readEsc23 zvy = readEsc21 zvy; 195.26/171.48 ; 195.26/171.48 readEsc24 True (zwu : s) = ('\',s) : []; 195.26/171.48 readEsc24 zwv zww = readEsc23 zww; 195.26/171.48 ; 195.26/171.48 readEsc25 (zwu : s) = readEsc24 (zwu == '\') (zwu : s); 195.26/171.48 readEsc25 zwx = readEsc23 zwx; 195.26/171.48 ; 195.26/171.48 readEsc26 True (zwz : s) = ('\11',s) : []; 195.26/171.48 readEsc26 zxu zxv = readEsc25 zxv; 195.26/171.48 ; 195.26/171.48 readEsc27 (zwz : s) = readEsc26 (zwz == 'v') (zwz : s); 195.26/171.48 readEsc27 zxw = readEsc25 zxw; 195.26/171.48 ; 195.26/171.48 readEsc28 True (zxy : s) = ('\9',s) : []; 195.26/171.48 readEsc28 zxz zyu = readEsc27 zyu; 195.26/171.48 ; 195.26/171.48 readEsc29 (zxy : s) = readEsc28 (zxy == 't') (zxy : s); 195.26/171.48 readEsc29 zyv = readEsc27 zyv; 195.26/171.48 ; 195.26/171.48 readEsc31 True (zyx : s) = ('\13',s) : []; 195.26/171.48 readEsc31 zyy zyz = readEsc29 zyz; 195.26/171.48 ; 195.26/171.48 readEsc32 (zyx : s) = readEsc31 (zyx == 'r') (zyx : s); 195.26/171.48 readEsc32 zzu = readEsc29 zzu; 195.26/171.48 ; 195.26/171.48 readEsc33 True (zzw : s) = ('\10',s) : []; 195.26/171.48 readEsc33 zzx zzy = readEsc32 zzy; 195.26/171.48 ; 195.26/171.48 readEsc34 (zzw : s) = readEsc33 (zzw == 'n') (zzw : s); 195.26/171.48 readEsc34 zzz = readEsc32 zzz; 195.26/171.48 ; 195.26/171.48 readEsc35 True (vuuv : s) = ('\12',s) : []; 195.26/171.48 readEsc35 vuuw vuux = readEsc34 vuux; 195.26/171.48 ; 195.26/171.48 readEsc36 (vuuv : s) = readEsc35 (vuuv == 'f') (vuuv : s); 195.26/171.48 readEsc36 vuuy = readEsc34 vuuy; 195.26/171.48 ; 195.26/171.48 readEsc37 True (vuvu : s) = ('\8',s) : []; 195.26/171.48 readEsc37 vuvv vuvw = readEsc36 vuvw; 195.26/171.48 ; 195.26/171.48 readEsc38 (vuvu : s) = readEsc37 (vuvu == 'b') (vuvu : s); 195.26/171.48 readEsc38 vuvx = readEsc36 vuvx; 195.26/171.48 ; 195.26/171.48 readEsc39 True (vuvz : s) = ('\7',s) : []; 195.26/171.48 readEsc39 vuwu vuwv = readEsc38 vuwv; 195.26/171.48 ; 195.26/171.48 readEsc41 (vuvz : s) = readEsc39 (vuvz == 'a') (vuvz : s); 195.26/171.48 readEsc41 vuww = readEsc38 vuww; 195.26/171.48 ; 195.26/171.48 readEsc6 vww = []; 195.26/171.48 ; 195.26/171.48 readEsc7 vvx vvy True = let { 195.26/171.48 readEsc3 c vu74 = readEsc30 c vu74; 195.26/171.48 ; 195.26/171.48 readEsc30 c ([],s') = (c,s') : []; 195.26/171.48 readEsc30 c vwv = []; 195.26/171.48 ; 195.26/171.48 readEsc4 s vu75 = readEsc40 s vu75; 195.26/171.48 ; 195.26/171.48 readEsc40 s (c,mne) = concatMap (readEsc3 c) (lexmatch mne s : []); 195.26/171.48 readEsc40 s vwu = []; 195.26/171.48 ; 195.26/171.48 readEsc5 (pr : vvz) = pr : []; 195.26/171.48 readEsc5 [] = []; 195.26/171.48 ; 195.26/171.48 table = ('\127','D' : 'E' : 'L' : []) : asciiTab; 195.26/171.48 } in readEsc5 (concatMap (readEsc4 (vvx : vvy)) table); 195.26/171.48 readEsc7 vvx vvy False = readEsc6 (vvx : vvy); 195.26/171.48 ; 195.26/171.48 readEsc8 (vvx : vvy) = readEsc7 vvx vvy (isUpper vvx); 195.26/171.48 readEsc8 ywy = readEsc6 ywy; 195.26/171.48 ; 195.26/171.48 readEsc9 True (yxu : s) = concatMap readEsc2 (readHex s); 195.26/171.48 readEsc9 yxv yxw = readEsc8 yxw; 195.26/171.48 } 195.26/171.48 ; 195.26/171.48 readLitChar1 vuxu vuxv = readLitChar0 vuxv; 195.26/171.48 " 195.26/171.48 "readLitChar2 (vuwz : s) = readLitChar1 (vuwz == '\') (vuwz : s); 195.26/171.48 readLitChar2 vuxw = readLitChar0 vuxw; 195.26/171.48 " 195.26/171.48 The following Function with conditions 195.26/171.48 "getChar |terminatorreturn terminator|otherwiseaIOE IOError_EOF; 195.26/171.48 " 195.26/171.48 is transformed to 195.26/171.48 "getChar = getChar2; 195.26/171.48 " 195.26/171.48 "getChar0 True = aIOE IOError_EOF; 195.26/171.48 " 195.26/171.48 "getChar1 True = return terminator; 195.26/171.48 getChar1 False = getChar0 otherwise; 195.26/171.48 " 195.26/171.48 "getChar2 = getChar1 terminator; 195.26/171.48 " 195.26/171.48 The following Function with conditions 195.26/171.48 "lexmatch (x : xs) (y : ys)|x == ylexmatch xs ys; 195.26/171.48 lexmatch xs ys = (xs,ys); 195.26/171.48 " 195.26/171.48 is transformed to 195.26/171.48 "lexmatch (x : xs) (y : ys) = lexmatch2 (x : xs) (y : ys); 195.26/171.48 lexmatch xs ys = lexmatch0 xs ys; 195.26/171.48 " 195.26/171.48 "lexmatch0 xs ys = (xs,ys); 195.26/171.48 " 195.26/171.48 "lexmatch1 x xs y ys True = lexmatch xs ys; 195.26/171.48 lexmatch1 x xs y ys False = lexmatch0 (x : xs) (y : ys); 195.26/171.48 " 195.26/171.48 "lexmatch2 (x : xs) (y : ys) = lexmatch1 x xs y ys (x == y); 195.26/171.48 lexmatch2 vuxz vuyu = lexmatch0 vuxz vuyu; 195.26/171.48 " 195.26/171.48 The following Function with conditions 195.26/171.48 "mandatory20 ('(' : [],s) = concatMap mandatory1 (optional s); 195.26/171.48 mandatory20 vyw = []; 195.26/171.48 " 195.26/171.48 is transformed to 195.26/171.48 "mandatory20 (vuyx : vuyy,s) = mandatory202 (vuyx : vuyy,s); 195.26/171.48 mandatory20 vyw = mandatory200 vyw; 195.26/171.48 " 195.26/171.48 "mandatory200 vyw = []; 195.26/171.48 " 195.26/171.48 "mandatory201 True (vuyx : [],s) = concatMap mandatory1 (optional s); 195.26/171.48 mandatory201 vuyz vuzu = mandatory200 vuzu; 195.26/171.48 " 195.26/171.48 "mandatory202 (vuyx : vuyy,s) = mandatory201 (vuyx == '(') (vuyx : vuyy,s); 195.26/171.48 mandatory202 vuzv = mandatory200 vuzv; 195.26/171.48 " 195.26/171.48 The following Function with conditions 195.26/171.48 "mandatory00 x (')' : [],u) = (x,u) : []; 195.26/171.48 mandatory00 x vyx = []; 195.26/171.48 " 195.26/171.48 is transformed to 195.26/171.48 "mandatory00 x (vuzy : vuzz,u) = mandatory002 x (vuzy : vuzz,u); 195.26/171.48 mandatory00 x vyx = mandatory000 x vyx; 195.26/171.48 " 195.26/171.48 "mandatory000 x vyx = []; 195.26/171.48 " 195.26/171.48 "mandatory001 True x (vuzy : [],u) = (x,u) : []; 195.26/171.48 mandatory001 vvuu vvuv vvuw = mandatory000 vvuv vvuw; 195.26/171.48 " 195.26/171.48 "mandatory002 x (vuzy : vuzz,u) = mandatory001 (vuzy == ')') x (vuzy : vuzz,u); 195.26/171.48 mandatory002 vvux vvuy = mandatory000 vvux vvuy; 195.26/171.48 " 195.26/171.48 The following Function with conditions 195.26/171.48 "lexEsc (c : s)|c `elem` 'a' : 'b' : 'f' : 'n' : 'r' : 't' : 'v' : '\' : '"' : ''' : [](c : [],s) : []; 195.26/171.48 lexEsc ('^' : c : s)|c >= '@' && c <= '_'('^' : c : [],s) : []; 195.26/171.48 lexEsc ('o' : s) = prefix 'o' (span isOctDigit s) : []; 195.26/171.48 lexEsc ('x' : s) = prefix 'x' (span isHexDigit s) : []; 195.26/171.48 lexEsc (vzu : vzv)|isDigit vzuspan isDigit (vzu : vzv) : []|isUpper vzulexEsc2 (concatMap (lexEsc1 (vzu : vzv)) table); 195.26/171.48 lexEsc vzw = []; 195.26/171.48 " 195.26/171.48 is transformed to 195.26/171.48 "lexEsc (c : s) = lexEsc16 (c : s); 195.26/171.48 lexEsc (vvxu : vvxx) = lexEsc14 (vvxu : vvxx); 195.26/171.48 lexEsc (vvwv : s) = lexEsc11 (vvwv : s); 195.26/171.48 lexEsc (vvvw : s) = lexEsc8 (vvvw : s); 195.26/171.48 lexEsc (vzu : vzv) = lexEsc6 (vzu : vzv); 195.26/171.48 lexEsc vzw = lexEsc3 vzw; 195.26/171.48 " 195.26/171.48 "lexEsc3 vzw = []; 195.26/171.48 " 195.26/171.48 "lexEsc5 vzu vzv True = span isDigit (vzu : vzv) : []; 195.26/171.48 lexEsc5 vzu vzv False = lexEsc4 vzu vzv (isUpper vzu); 195.26/171.48 " 195.26/171.48 "lexEsc4 vzu vzv True = lexEsc2 (concatMap (lexEsc1 (vzu : vzv)) table); 195.26/171.48 lexEsc4 vzu vzv False = lexEsc3 (vzu : vzv); 195.26/171.48 " 195.26/171.48 "lexEsc6 (vzu : vzv) = lexEsc5 vzu vzv (isDigit vzu); 195.26/171.48 lexEsc6 vvvu = lexEsc3 vvvu; 195.26/171.48 " 195.26/171.48 "lexEsc7 True (vvvw : s) = prefix 'x' (span isHexDigit s) : []; 195.26/171.48 lexEsc7 vvvx vvvy = lexEsc6 vvvy; 195.26/171.48 " 195.26/171.48 "lexEsc8 (vvvw : s) = lexEsc7 (vvvw == 'x') (vvvw : s); 195.26/171.48 lexEsc8 vvvz = lexEsc6 vvvz; 195.26/171.48 " 195.26/171.48 "lexEsc9 True (vvwv : s) = prefix 'o' (span isOctDigit s) : []; 195.26/171.48 lexEsc9 vvww vvwx = lexEsc8 vvwx; 195.26/171.48 " 195.26/171.48 "lexEsc11 (vvwv : s) = lexEsc9 (vvwv == 'o') (vvwv : s); 195.26/171.48 lexEsc11 vvwy = lexEsc8 vvwy; 195.26/171.48 " 195.26/171.48 "lexEsc12 vvxu c s True = ('^' : c : [],s) : []; 195.26/171.48 lexEsc12 vvxu c s False = lexEsc11 (vvxu : c : s); 195.26/171.48 " 195.26/171.48 "lexEsc13 True (vvxu : c : s) = lexEsc12 vvxu c s (c >= '@' && c <= '_'); 195.26/171.48 lexEsc13 vvxy vvxz = lexEsc11 vvxz; 195.26/171.48 " 195.26/171.48 "lexEsc14 (vvxu : vvxx) = lexEsc13 (vvxu == '^') (vvxu : vvxx); 195.26/171.48 lexEsc14 vvyu = lexEsc11 vvyu; 195.26/171.48 " 195.26/171.48 "lexEsc15 c s True = (c : [],s) : []; 195.26/171.48 lexEsc15 c s False = lexEsc14 (c : s); 195.26/171.48 " 195.26/171.48 "lexEsc16 (c : s) = lexEsc15 c s (c `elem` 'a' : 'b' : 'f' : 'n' : 'r' : 't' : 'v' : '\' : '"' : ''' : []); 195.26/171.48 lexEsc16 vvyw = lexEsc14 vvyw; 195.26/171.48 " 195.26/171.48 The following Function with conditions 195.26/171.48 "lexLitChar [] = []; 195.26/171.48 lexLitChar (c : s)|c /= '\'(c : [],s) : []|otherwisemap (prefix '\') (lexEsc s) where { 195.26/171.48 lexEsc (c : s)|c `elem` 'a' : 'b' : 'f' : 'n' : 'r' : 't' : 'v' : '\' : '"' : ''' : [](c : [],s) : []; 195.26/171.48 lexEsc ('^' : c : s)|c >= '@' && c <= '_'('^' : c : [],s) : []; 195.26/171.48 lexEsc ('o' : s) = prefix 'o' (span isOctDigit s) : []; 195.26/171.48 lexEsc ('x' : s) = prefix 'x' (span isHexDigit s) : []; 195.26/171.48 lexEsc (vzu : vzv)|isDigit vzuspan isDigit (vzu : vzv) : []|isUpper vzulexEsc2 (concatMap (lexEsc1 (vzu : vzv)) table); 195.26/171.48 lexEsc vzw = []; 195.26/171.48 ; 195.26/171.48 lexEsc0 mne vu69 = lexEsc00 mne vu69; 195.26/171.48 ; 195.26/171.48 lexEsc00 mne ([],s') = (mne,s') : []; 195.26/171.48 lexEsc00 mne vzy = []; 195.26/171.48 ; 195.26/171.48 lexEsc1 s vu70 = lexEsc10 s vu70; 195.26/171.48 ; 195.26/171.48 lexEsc10 s (c,mne) = concatMap (lexEsc0 mne) (lexmatch mne s : []); 195.26/171.48 lexEsc10 s vzz = []; 195.26/171.48 ; 195.26/171.48 lexEsc2 (pr : vzx) = pr : []; 195.26/171.48 lexEsc2 [] = []; 195.26/171.48 ; 195.26/171.48 prefix c (t,s) = (c : t,s); 195.26/171.48 ; 195.26/171.48 table = ('\127','D' : 'E' : 'L' : []) : asciiTab; 195.26/171.48 } 195.26/171.48 ; 195.26/171.48 " 195.26/171.48 is transformed to 195.26/171.48 "lexLitChar [] = lexLitChar3 []; 195.26/171.48 lexLitChar (c : s) = lexLitChar2 (c : s); 195.26/171.48 " 195.26/171.48 "lexLitChar2 (c : s) = lexLitChar1 c s (c /= '\') where { 195.26/171.48 lexEsc (c : s) = lexEsc16 (c : s); 195.26/171.48 lexEsc (vvxu : vvxx) = lexEsc14 (vvxu : vvxx); 195.26/171.48 lexEsc (vvwv : s) = lexEsc11 (vvwv : s); 195.26/171.48 lexEsc (vvvw : s) = lexEsc8 (vvvw : s); 195.26/171.48 lexEsc (vzu : vzv) = lexEsc6 (vzu : vzv); 195.26/171.48 lexEsc vzw = lexEsc3 vzw; 195.26/171.48 ; 195.26/171.48 lexEsc0 mne vu69 = lexEsc00 mne vu69; 195.26/171.48 ; 195.26/171.48 lexEsc00 mne ([],s') = (mne,s') : []; 195.26/171.48 lexEsc00 mne vzy = []; 195.26/171.48 ; 195.26/171.48 lexEsc1 s vu70 = lexEsc10 s vu70; 195.26/171.48 ; 195.26/171.48 lexEsc10 s (c,mne) = concatMap (lexEsc0 mne) (lexmatch mne s : []); 195.26/171.48 lexEsc10 s vzz = []; 195.26/171.48 ; 195.26/171.48 lexEsc11 (vvwv : s) = lexEsc9 (vvwv == 'o') (vvwv : s); 195.26/171.48 lexEsc11 vvwy = lexEsc8 vvwy; 195.26/171.48 ; 195.26/171.48 lexEsc12 vvxu c s True = ('^' : c : [],s) : []; 195.26/171.48 lexEsc12 vvxu c s False = lexEsc11 (vvxu : c : s); 195.26/171.48 ; 195.26/171.48 lexEsc13 True (vvxu : c : s) = lexEsc12 vvxu c s (c >= '@' && c <= '_'); 195.26/171.48 lexEsc13 vvxy vvxz = lexEsc11 vvxz; 195.26/171.48 ; 195.26/171.48 lexEsc14 (vvxu : vvxx) = lexEsc13 (vvxu == '^') (vvxu : vvxx); 195.26/171.48 lexEsc14 vvyu = lexEsc11 vvyu; 195.26/171.48 ; 195.26/171.48 lexEsc15 c s True = (c : [],s) : []; 195.26/171.48 lexEsc15 c s False = lexEsc14 (c : s); 195.26/171.48 ; 195.26/171.48 lexEsc16 (c : s) = lexEsc15 c s (c `elem` 'a' : 'b' : 'f' : 'n' : 'r' : 't' : 'v' : '\' : '"' : ''' : []); 195.26/171.48 lexEsc16 vvyw = lexEsc14 vvyw; 195.26/171.48 ; 195.26/171.48 lexEsc2 (pr : vzx) = pr : []; 195.26/171.48 lexEsc2 [] = []; 195.26/171.48 ; 195.26/171.48 lexEsc3 vzw = []; 195.26/171.48 ; 195.26/171.48 lexEsc4 vzu vzv True = lexEsc2 (concatMap (lexEsc1 (vzu : vzv)) table); 195.26/171.48 lexEsc4 vzu vzv False = lexEsc3 (vzu : vzv); 195.26/171.48 ; 195.26/171.48 lexEsc5 vzu vzv True = span isDigit (vzu : vzv) : []; 195.26/171.48 lexEsc5 vzu vzv False = lexEsc4 vzu vzv (isUpper vzu); 195.26/171.48 ; 195.26/171.48 lexEsc6 (vzu : vzv) = lexEsc5 vzu vzv (isDigit vzu); 195.26/171.48 lexEsc6 vvvu = lexEsc3 vvvu; 195.26/171.48 ; 195.26/171.48 lexEsc7 True (vvvw : s) = prefix 'x' (span isHexDigit s) : []; 195.26/171.48 lexEsc7 vvvx vvvy = lexEsc6 vvvy; 195.26/171.48 ; 195.26/171.48 lexEsc8 (vvvw : s) = lexEsc7 (vvvw == 'x') (vvvw : s); 195.26/171.48 lexEsc8 vvvz = lexEsc6 vvvz; 195.26/171.48 ; 195.26/171.48 lexEsc9 True (vvwv : s) = prefix 'o' (span isOctDigit s) : []; 195.26/171.48 lexEsc9 vvww vvwx = lexEsc8 vvwx; 195.26/171.48 ; 195.26/171.48 lexLitChar0 c s True = map (prefix '\') (lexEsc s); 195.26/171.48 ; 195.26/171.48 lexLitChar1 c s True = (c : [],s) : []; 195.26/171.48 lexLitChar1 c s False = lexLitChar0 c s otherwise; 195.26/171.48 ; 195.26/171.48 prefix c (t,s) = (c : t,s); 195.26/171.48 ; 195.26/171.48 table = ('\127','D' : 'E' : 'L' : []) : asciiTab; 195.26/171.48 } 195.26/171.48 ; 195.26/171.48 " 195.26/171.48 "lexLitChar3 [] = []; 195.26/171.48 lexLitChar3 vvyz = lexLitChar2 vvyz; 195.26/171.48 " 195.26/171.48 195.26/171.48 ---------------------------------------- 195.26/171.48 195.26/171.48 (10) 195.26/171.48 Obligation: 195.26/171.48 mainModule Main 195.26/171.48 module Main where { 195.26/171.48 import qualified Prelude; 195.26/171.48 } 195.26/171.48 195.26/171.48 ---------------------------------------- 195.26/171.48 195.26/171.48 (11) LetRed (EQUIVALENT) 195.26/171.48 Let/Where Reductions: 195.26/171.48 The bindings of the following Let/Where expression 195.26/171.48 "lexLitChar1 c s (c /= '\') where { 195.26/171.48 lexEsc (c : s) = lexEsc16 (c : s); 195.26/171.48 lexEsc (vvxu : vvxx) = lexEsc14 (vvxu : vvxx); 195.26/171.48 lexEsc (vvwv : s) = lexEsc11 (vvwv : s); 195.26/171.48 lexEsc (vvvw : s) = lexEsc8 (vvvw : s); 195.26/171.48 lexEsc (vzu : vzv) = lexEsc6 (vzu : vzv); 195.26/171.48 lexEsc vzw = lexEsc3 vzw; 195.26/171.48 ; 195.26/171.48 lexEsc0 mne vu69 = lexEsc00 mne vu69; 195.26/171.48 ; 195.26/171.48 lexEsc00 mne ([],s') = (mne,s') : []; 195.26/171.48 lexEsc00 mne vzy = []; 195.26/171.48 ; 195.26/171.48 lexEsc1 s vu70 = lexEsc10 s vu70; 195.26/171.48 ; 195.26/171.48 lexEsc10 s (c,mne) = concatMap (lexEsc0 mne) (lexmatch mne s : []); 195.26/171.48 lexEsc10 s vzz = []; 195.26/171.48 ; 195.26/171.48 lexEsc11 (vvwv : s) = lexEsc9 (vvwv == 'o') (vvwv : s); 195.26/171.48 lexEsc11 vvwy = lexEsc8 vvwy; 195.26/171.48 ; 195.26/171.48 lexEsc12 vvxu c s True = ('^' : c : [],s) : []; 195.26/171.48 lexEsc12 vvxu c s False = lexEsc11 (vvxu : c : s); 195.26/171.48 ; 195.26/171.48 lexEsc13 True (vvxu : c : s) = lexEsc12 vvxu c s (c >= '@' && c <= '_'); 195.26/171.48 lexEsc13 vvxy vvxz = lexEsc11 vvxz; 195.26/171.48 ; 195.26/171.48 lexEsc14 (vvxu : vvxx) = lexEsc13 (vvxu == '^') (vvxu : vvxx); 195.26/171.48 lexEsc14 vvyu = lexEsc11 vvyu; 195.26/171.48 ; 195.26/171.48 lexEsc15 c s True = (c : [],s) : []; 195.26/171.48 lexEsc15 c s False = lexEsc14 (c : s); 195.26/171.48 ; 195.26/171.48 lexEsc16 (c : s) = lexEsc15 c s (c `elem` 'a' : 'b' : 'f' : 'n' : 'r' : 't' : 'v' : '\' : '"' : ''' : []); 195.26/171.48 lexEsc16 vvyw = lexEsc14 vvyw; 195.26/171.48 ; 195.26/171.48 lexEsc2 (pr : vzx) = pr : []; 195.26/171.48 lexEsc2 [] = []; 195.26/171.48 ; 195.26/171.48 lexEsc3 vzw = []; 195.26/171.48 ; 195.26/171.48 lexEsc4 vzu vzv True = lexEsc2 (concatMap (lexEsc1 (vzu : vzv)) table); 195.26/171.48 lexEsc4 vzu vzv False = lexEsc3 (vzu : vzv); 195.26/171.48 ; 195.26/171.48 lexEsc5 vzu vzv True = span isDigit (vzu : vzv) : []; 195.26/171.48 lexEsc5 vzu vzv False = lexEsc4 vzu vzv (isUpper vzu); 195.26/171.48 ; 195.26/171.48 lexEsc6 (vzu : vzv) = lexEsc5 vzu vzv (isDigit vzu); 195.26/171.48 lexEsc6 vvvu = lexEsc3 vvvu; 195.26/171.48 ; 195.26/171.48 lexEsc7 True (vvvw : s) = prefix 'x' (span isHexDigit s) : []; 195.26/171.48 lexEsc7 vvvx vvvy = lexEsc6 vvvy; 195.26/171.48 ; 195.26/171.48 lexEsc8 (vvvw : s) = lexEsc7 (vvvw == 'x') (vvvw : s); 195.26/171.48 lexEsc8 vvvz = lexEsc6 vvvz; 195.26/171.48 ; 195.26/171.48 lexEsc9 True (vvwv : s) = prefix 'o' (span isOctDigit s) : []; 195.26/171.48 lexEsc9 vvww vvwx = lexEsc8 vvwx; 195.26/171.48 ; 195.26/171.48 lexLitChar0 c s True = map (prefix '\') (lexEsc s); 195.26/171.48 ; 195.26/171.48 lexLitChar1 c s True = (c : [],s) : []; 195.26/171.48 lexLitChar1 c s False = lexLitChar0 c s otherwise; 195.26/171.48 ; 195.26/171.48 prefix c (t,s) = (c : t,s); 195.26/171.48 ; 195.26/171.48 table = ('\127','D' : 'E' : 'L' : []) : asciiTab; 195.26/171.48 } 195.26/171.48 " 195.26/171.48 are unpacked to the following functions on top level 195.26/171.48 "lexLitChar2Table = ('\127','D' : 'E' : 'L' : []) : asciiTab; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc3 vzw = []; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc10 s (c,mne) = concatMap (lexLitChar2LexEsc0 mne) (lexmatch mne s : []); 195.26/171.48 lexLitChar2LexEsc10 s vzz = []; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc16 (c : s) = lexLitChar2LexEsc15 c s (c `elem` 'a' : 'b' : 'f' : 'n' : 'r' : 't' : 'v' : '\' : '"' : ''' : []); 195.26/171.48 lexLitChar2LexEsc16 vvyw = lexLitChar2LexEsc14 vvyw; 195.26/171.48 " 195.26/171.48 "lexLitChar2Prefix c (t,s) = (c : t,s); 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc5 vzu vzv True = span isDigit (vzu : vzv) : []; 195.26/171.48 lexLitChar2LexEsc5 vzu vzv False = lexLitChar2LexEsc4 vzu vzv (isUpper vzu); 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc12 vvxu c s True = ('^' : c : [],s) : []; 195.26/171.48 lexLitChar2LexEsc12 vvxu c s False = lexLitChar2LexEsc11 (vvxu : c : s); 195.26/171.48 " 195.26/171.48 "lexLitChar2LexLitChar0 c s True = map (lexLitChar2Prefix '\') (lexLitChar2LexEsc s); 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc14 (vvxu : vvxx) = lexLitChar2LexEsc13 (vvxu == '^') (vvxu : vvxx); 195.26/171.48 lexLitChar2LexEsc14 vvyu = lexLitChar2LexEsc11 vvyu; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc (c : s) = lexLitChar2LexEsc16 (c : s); 195.26/171.48 lexLitChar2LexEsc (vvxu : vvxx) = lexLitChar2LexEsc14 (vvxu : vvxx); 195.26/171.48 lexLitChar2LexEsc (vvwv : s) = lexLitChar2LexEsc11 (vvwv : s); 195.26/171.48 lexLitChar2LexEsc (vvvw : s) = lexLitChar2LexEsc8 (vvvw : s); 195.26/171.48 lexLitChar2LexEsc (vzu : vzv) = lexLitChar2LexEsc6 (vzu : vzv); 195.26/171.48 lexLitChar2LexEsc vzw = lexLitChar2LexEsc3 vzw; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc7 True (vvvw : s) = lexLitChar2Prefix 'x' (span isHexDigit s) : []; 195.26/171.48 lexLitChar2LexEsc7 vvvx vvvy = lexLitChar2LexEsc6 vvvy; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc00 mne ([],s') = (mne,s') : []; 195.26/171.48 lexLitChar2LexEsc00 mne vzy = []; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc13 True (vvxu : c : s) = lexLitChar2LexEsc12 vvxu c s (c >= '@' && c <= '_'); 195.26/171.48 lexLitChar2LexEsc13 vvxy vvxz = lexLitChar2LexEsc11 vvxz; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc1 s vu70 = lexLitChar2LexEsc10 s vu70; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc9 True (vvwv : s) = lexLitChar2Prefix 'o' (span isOctDigit s) : []; 195.26/171.48 lexLitChar2LexEsc9 vvww vvwx = lexLitChar2LexEsc8 vvwx; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc15 c s True = (c : [],s) : []; 195.26/171.48 lexLitChar2LexEsc15 c s False = lexLitChar2LexEsc14 (c : s); 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc4 vzu vzv True = lexLitChar2LexEsc2 (concatMap (lexLitChar2LexEsc1 (vzu : vzv)) lexLitChar2Table); 195.26/171.48 lexLitChar2LexEsc4 vzu vzv False = lexLitChar2LexEsc3 (vzu : vzv); 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc6 (vzu : vzv) = lexLitChar2LexEsc5 vzu vzv (isDigit vzu); 195.26/171.48 lexLitChar2LexEsc6 vvvu = lexLitChar2LexEsc3 vvvu; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexLitChar1 c s True = (c : [],s) : []; 195.26/171.48 lexLitChar2LexLitChar1 c s False = lexLitChar2LexLitChar0 c s otherwise; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc2 (pr : vzx) = pr : []; 195.26/171.48 lexLitChar2LexEsc2 [] = []; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc0 mne vu69 = lexLitChar2LexEsc00 mne vu69; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc11 (vvwv : s) = lexLitChar2LexEsc9 (vvwv == 'o') (vvwv : s); 195.26/171.48 lexLitChar2LexEsc11 vvwy = lexLitChar2LexEsc8 vvwy; 195.26/171.48 " 195.26/171.48 "lexLitChar2LexEsc8 (vvvw : s) = lexLitChar2LexEsc7 (vvvw == 'x') (vvvw : s); 195.26/171.48 lexLitChar2LexEsc8 vvvz = lexLitChar2LexEsc6 vvvz; 195.26/171.48 " 195.26/171.48 The bindings of the following Let/Where expression 195.26/171.48 "concatMap lex1 (lexString s) where { 195.26/171.48 lex1 vu55 = lex10 vu55; 195.26/171.48 ; 195.26/171.48 lex10 (str,t) = ('"' : str,t) : []; 195.26/171.48 lex10 wx = []; 195.26/171.48 ; 195.26/171.48 lexStrItem (wyx : wzv) = lexStrItem7 (wyx : wzv); 195.26/171.48 lexStrItem (wxv : wxy) = lexStrItem4 (wxv : wxy); 195.26/171.48 lexStrItem s = lexStrItem1 s; 195.26/171.48 ; 195.26/171.48 lexStrItem0 vu58 = lexStrItem00 vu58; 195.26/171.48 ; 195.26/171.48 lexStrItem00 (xuw : t) = lexStrItem002 (xuw : t); 195.26/171.48 lexStrItem00 ww = lexStrItem000 ww; 195.26/171.48 ; 195.26/171.48 lexStrItem000 ww = []; 195.26/171.48 ; 195.26/171.48 lexStrItem001 True (xuw : t) = ([],t) : []; 195.26/171.48 lexStrItem001 xux xuy = lexStrItem000 xuy; 195.26/171.48 ; 195.26/171.48 lexStrItem002 (xuw : t) = lexStrItem001 (xuw == '\') (xuw : t); 195.26/171.48 lexStrItem002 xuz = lexStrItem000 xuz; 195.26/171.48 ; 195.26/171.48 lexStrItem1 s = lexLitChar s; 195.26/171.48 ; 195.26/171.48 lexStrItem2 wxv c s True = concatMap lexStrItem0 (dropWhile isSpace s : []); 195.26/171.48 lexStrItem2 wxv c s False = lexStrItem1 (wxv : c : s); 195.26/171.48 ; 195.26/171.48 lexStrItem3 True (wxv : c : s) = lexStrItem2 wxv c s (isSpace c); 195.26/171.48 lexStrItem3 wxz wyu = lexStrItem1 wyu; 195.26/171.48 ; 195.26/171.48 lexStrItem4 (wxv : wxy) = lexStrItem3 (wxv == '\') (wxv : wxy); 195.26/171.48 lexStrItem4 wyv = lexStrItem1 wyv; 195.26/171.48 ; 195.26/171.48 lexStrItem5 True (wyx : wyz : s) = ('\' : '&' : [],s) : []; 195.26/171.48 lexStrItem5 wzw wzx = lexStrItem4 wzx; 195.26/171.48 ; 195.26/171.48 lexStrItem6 True (wyx : wyz : s) = lexStrItem5 (wyz == '&') (wyx : wyz : s); 195.26/171.48 lexStrItem6 wzy wzz = lexStrItem4 wzz; 195.26/171.48 ; 195.26/171.48 lexStrItem7 (wyx : wzv) = lexStrItem6 (wyx == '\') (wyx : wzv); 195.26/171.48 lexStrItem7 xuu = lexStrItem4 xuu; 195.26/171.48 ; 195.26/171.48 lexString (www : s) = lexString4 (www : s); 195.26/171.48 lexString s = lexString2 s; 195.26/171.48 ; 195.26/171.48 lexString0 ch vu56 = lexString00 ch vu56; 195.26/171.48 ; 195.26/171.48 lexString00 ch (str,u) = (ch ++ str,u) : []; 195.26/171.48 lexString00 ch wu = []; 195.26/171.48 ; 195.26/171.48 lexString1 vu57 = lexString10 vu57; 195.26/171.48 ; 195.26/171.48 lexString10 (ch,t) = concatMap (lexString0 ch) (lexString t); 195.26/171.48 lexString10 wv = []; 195.26/171.48 ; 195.26/171.48 lexString2 s = concatMap lexString1 (lexStrItem s); 195.26/171.48 ; 195.26/171.48 lexString3 True (www : s) = ('"' : [],s) : []; 195.26/171.48 lexString3 wwx wwy = lexString2 wwy; 195.26/171.48 ; 195.26/171.48 lexString4 (www : s) = lexString3 (www == '"') (www : s); 195.26/171.48 lexString4 wwz = lexString2 wwz; 195.26/171.48 } 195.26/171.48 " 195.26/171.48 are unpacked to the following functions on top level 195.26/171.48 "lex13LexStrItem001 True (xuw : t) = ([],t) : []; 195.26/171.48 lex13LexStrItem001 xux xuy = lex13LexStrItem000 xuy; 195.26/171.48 " 195.26/171.48 "lex13LexStrItem3 True (wxv : c : s) = lex13LexStrItem2 wxv c s (isSpace c); 195.26/171.48 lex13LexStrItem3 wxz wyu = lex13LexStrItem1 wyu; 195.26/171.48 " 195.26/171.48 "lex13LexString1 vu57 = lex13LexString10 vu57; 195.26/171.48 " 195.26/171.48 "lex13LexString3 True (www : s) = ('"' : [],s) : []; 195.26/171.48 lex13LexString3 wwx wwy = lex13LexString2 wwy; 195.26/171.48 " 195.26/171.48 "lex13LexStrItem2 wxv c s True = concatMap lex13LexStrItem0 (dropWhile isSpace s : []); 195.26/171.48 lex13LexStrItem2 wxv c s False = lex13LexStrItem1 (wxv : c : s); 195.26/171.48 " 195.26/171.48 "lex13LexStrItem0 vu58 = lex13LexStrItem00 vu58; 195.26/171.48 " 195.26/171.48 "lex13LexString4 (www : s) = lex13LexString3 (www == '"') (www : s); 195.26/171.48 lex13LexString4 wwz = lex13LexString2 wwz; 195.26/171.48 " 195.26/171.48 "lex13LexString0 ch vu56 = lex13LexString00 ch vu56; 195.26/171.48 " 195.26/171.48 "lex13LexStrItem6 True (wyx : wyz : s) = lex13LexStrItem5 (wyz == '&') (wyx : wyz : s); 195.26/171.48 lex13LexStrItem6 wzy wzz = lex13LexStrItem4 wzz; 195.26/171.48 " 195.26/171.48 "lex13LexStrItem1 s = lexLitChar s; 195.26/171.48 " 195.26/171.48 "lex13LexStrItem5 True (wyx : wyz : s) = ('\' : '&' : [],s) : []; 195.26/171.48 lex13LexStrItem5 wzw wzx = lex13LexStrItem4 wzx; 195.26/171.48 " 195.26/171.48 "lex13LexStrItem7 (wyx : wzv) = lex13LexStrItem6 (wyx == '\') (wyx : wzv); 195.26/171.48 lex13LexStrItem7 xuu = lex13LexStrItem4 xuu; 195.26/171.48 " 195.26/171.48 "lex13Lex1 vu55 = lex13Lex10 vu55; 195.26/171.48 " 195.26/171.48 "lex13LexStrItem (wyx : wzv) = lex13LexStrItem7 (wyx : wzv); 195.26/171.48 lex13LexStrItem (wxv : wxy) = lex13LexStrItem4 (wxv : wxy); 195.26/171.48 lex13LexStrItem s = lex13LexStrItem1 s; 195.26/171.48 " 195.26/171.48 "lex13Lex10 (str,t) = ('"' : str,t) : []; 195.26/171.48 lex13Lex10 wx = []; 195.26/171.48 " 195.26/171.48 "lex13LexString (www : s) = lex13LexString4 (www : s); 195.26/171.48 lex13LexString s = lex13LexString2 s; 195.26/171.48 " 195.26/171.48 "lex13LexStrItem002 (xuw : t) = lex13LexStrItem001 (xuw == '\') (xuw : t); 195.26/171.48 lex13LexStrItem002 xuz = lex13LexStrItem000 xuz; 195.26/171.48 " 195.26/171.48 "lex13LexStrItem000 ww = []; 195.26/171.48 " 195.26/171.48 "lex13LexStrItem4 (wxv : wxy) = lex13LexStrItem3 (wxv == '\') (wxv : wxy); 195.26/171.48 lex13LexStrItem4 wyv = lex13LexStrItem1 wyv; 195.26/171.48 " 195.26/171.48 "lex13LexString2 s = concatMap lex13LexString1 (lex13LexStrItem s); 195.26/171.48 " 195.26/171.48 "lex13LexString00 ch (str,u) = (ch ++ str,u) : []; 195.26/171.48 lex13LexString00 ch wu = []; 195.26/171.48 " 195.26/171.48 "lex13LexStrItem00 (xuw : t) = lex13LexStrItem002 (xuw : t); 195.26/171.48 lex13LexStrItem00 ww = lex13LexStrItem000 ww; 195.26/171.48 " 195.26/171.48 "lex13LexString10 (ch,t) = concatMap (lex13LexString0 ch) (lex13LexString t); 195.26/171.48 lex13LexString10 wv = []; 195.26/171.48 " 195.26/171.48 The bindings of the following Let/Where expression 195.26/171.48 "span1 p zw zx (p zw) where { 195.26/171.48 span0 p zw zx True = ([],zw : zx); 195.26/171.48 ; 195.26/171.48 span1 p zw zx True = (zw : ys,zs); 195.26/171.48 span1 p zw zx False = span0 p zw zx otherwise; 195.26/171.48 ; 195.26/171.48 vu43 = span p zx; 195.26/171.48 ; 195.26/171.48 ys = ys0 vu43; 195.26/171.48 ; 195.26/171.48 ys0 (ys,zz) = ys; 195.26/171.48 ; 195.26/171.48 zs = zs0 vu43; 195.26/171.48 ; 195.26/171.48 zs0 (zy,zs) = zs; 195.26/171.48 } 195.26/171.48 " 195.26/171.48 are unpacked to the following functions on top level 195.26/171.48 "span2Ys0 vvzu vvzv (ys,zz) = ys; 195.26/171.48 " 195.26/171.48 "span2Span0 vvzu vvzv p zw zx True = ([],zw : zx); 195.26/171.48 " 195.26/171.48 "span2Vu43 vvzu vvzv = span vvzu vvzv; 195.26/171.48 " 195.26/171.48 "span2Zs vvzu vvzv = span2Zs0 vvzu vvzv (span2Vu43 vvzu vvzv); 195.26/171.48 " 195.26/171.48 "span2Ys vvzu vvzv = span2Ys0 vvzu vvzv (span2Vu43 vvzu vvzv); 195.26/171.48 " 195.26/171.48 "span2Span1 vvzu vvzv p zw zx True = (zw : span2Ys vvzu vvzv,span2Zs vvzu vvzv); 195.26/171.48 span2Span1 vvzu vvzv p zw zx False = span2Span0 vvzu vvzv p zw zx otherwise; 195.26/171.48 " 195.26/171.48 "span2Zs0 vvzu vvzv (zy,zs) = zs; 195.26/171.48 " 195.26/171.48 The bindings of the following Let/Where expression 195.26/171.48 "lex11 c s (isSingle c) where { 195.26/171.48 isIdChar c = isAlphaNum c || c `elem` '_' : ''' : []; 195.26/171.48 ; 195.26/171.48 isSingle c = c `elem` ',' : ';' : '(' : ')' : '[' : ']' : '{' : '}' : '_' : '`' : []; 195.26/171.48 ; 195.26/171.48 isSym c = c `elem` '!' : '@' : '#' : '$' : '%' : '&' : '*' : '+' : '.' : '/' : '<' : '=' : '>' : '?' : '\' : '^' : '|' : ':' : '-' : '~' : []; 195.26/171.48 ; 195.26/171.48 lex11 c s True = (c : [],s) : []; 195.26/171.48 lex11 c s False = lex9 c s (isSym c); 195.26/171.48 ; 195.26/171.48 lex2 c vu59 = lex20 c vu59; 195.26/171.48 ; 195.26/171.48 lex20 c (sym,t) = (c : sym,t) : []; 195.26/171.48 lex20 c xz = []; 195.26/171.48 ; 195.26/171.48 lex3 c vu60 = lex30 c vu60; 195.26/171.48 ; 195.26/171.48 lex30 c (nam,t) = (c : nam,t) : []; 195.26/171.48 lex30 c yu = []; 195.26/171.48 ; 195.26/171.48 lex4 c ds vu61 = lex40 c ds vu61; 195.26/171.48 ; 195.26/171.48 lex40 c ds (fe,t) = (c : ds ++ fe,t) : []; 195.26/171.48 lex40 c ds xx = []; 195.26/171.48 ; 195.26/171.48 lex5 c vu62 = lex50 c vu62; 195.26/171.48 ; 195.26/171.48 lex50 c (ds,s) = concatMap (lex4 c ds) (lexFracExp s); 195.26/171.48 lex50 c xy = []; 195.26/171.48 ; 195.26/171.48 lex6 c s True = []; 195.26/171.48 ; 195.26/171.48 lex7 c s True = concatMap (lex5 c) (span isDigit s : []); 195.26/171.48 lex7 c s False = lex6 c s otherwise; 195.26/171.48 ; 195.26/171.48 lex8 c s True = concatMap (lex3 c) (span isIdChar s : []); 195.26/171.48 lex8 c s False = lex7 c s (isDigit c); 195.26/171.48 ; 195.26/171.48 lex9 c s True = concatMap (lex2 c) (span isSym s : []); 195.26/171.48 lex9 c s False = lex8 c s (isAlpha c); 195.26/171.48 ; 195.26/171.48 lexExp (e : s) = lexExp5 (e : s); 195.26/171.48 lexExp s = lexExp3 s; 195.26/171.48 ; 195.26/171.48 lexExp0 e c vu65 = lexExp00 e c vu65; 195.26/171.48 ; 195.26/171.48 lexExp00 e c (ds,u) = (e : c : ds,u) : []; 195.26/171.48 lexExp00 e c wy = []; 195.26/171.48 ; 195.26/171.48 lexExp1 e vu66 = lexExp10 e vu66; 195.26/171.48 ; 195.26/171.48 lexExp10 e (c : t) = lexExp100 e c t (c `elem` '+' : '-' : []); 195.26/171.48 lexExp10 e xu = []; 195.26/171.48 ; 195.26/171.48 lexExp100 e c t True = concatMap (lexExp0 e c) (lexDigits t); 195.26/171.48 lexExp100 e c t False = []; 195.26/171.48 ; 195.26/171.48 lexExp2 e vu67 = lexExp20 e vu67; 195.26/171.48 ; 195.26/171.48 lexExp20 e (ds,t) = (e : ds,t) : []; 195.26/171.48 lexExp20 e wz = []; 195.26/171.48 ; 195.26/171.48 lexExp3 s = ([],s) : []; 195.26/171.48 ; 195.26/171.48 lexExp4 e s True = concatMap (lexExp1 e) (s : []) ++ concatMap (lexExp2 e) (lexDigits s); 195.26/171.48 lexExp4 e s False = lexExp3 (e : s); 195.26/171.48 ; 195.26/171.48 lexExp5 (e : s) = lexExp4 e s (e `elem` 'e' : 'E' : []); 195.26/171.48 lexExp5 xvv = lexExp3 xvv; 195.26/171.48 ; 195.26/171.48 lexFracExp (xvx : xwu) = lexFracExp5 (xvx : xwu); 195.26/171.48 lexFracExp s = lexFracExp2 s; 195.26/171.48 ; 195.26/171.48 lexFracExp0 ds vu63 = lexFracExp00 ds vu63; 195.26/171.48 ; 195.26/171.48 lexFracExp00 ds (e,u) = ('.' : ds ++ e,u) : []; 195.26/171.48 lexFracExp00 ds xw = []; 195.26/171.48 ; 195.26/171.48 lexFracExp1 vu64 = lexFracExp10 vu64; 195.26/171.48 ; 195.26/171.48 lexFracExp10 (ds,t) = concatMap (lexFracExp0 ds) (lexExp t); 195.26/171.48 lexFracExp10 xv = []; 195.26/171.48 ; 195.26/171.48 lexFracExp2 s = lexExp s; 195.26/171.48 ; 195.26/171.48 lexFracExp3 xvx c cs True = concatMap lexFracExp1 (lexDigits (c : cs)); 195.26/171.48 lexFracExp3 xvx c cs False = lexFracExp2 (xvx : c : cs); 195.26/171.48 ; 195.26/171.48 lexFracExp4 True (xvx : c : cs) = lexFracExp3 xvx c cs (isDigit c); 195.26/171.48 lexFracExp4 xwv xww = lexFracExp2 xww; 195.26/171.48 ; 195.26/171.48 lexFracExp5 (xvx : xwu) = lexFracExp4 (xvx == '.') (xvx : xwu); 195.26/171.48 lexFracExp5 xwx = lexFracExp2 xwx; 195.26/171.48 } 195.26/171.48 " 195.26/171.48 are unpacked to the following functions on top level 195.26/171.48 "lex12LexExp20 e (ds,t) = (e : ds,t) : []; 195.26/171.48 lex12LexExp20 e wz = []; 195.26/171.48 " 195.26/171.48 "lex12Lex40 c ds (fe,t) = (c : ds ++ fe,t) : []; 195.26/171.48 lex12Lex40 c ds xx = []; 195.26/171.48 " 195.26/171.48 "lex12IsIdChar c = isAlphaNum c || c `elem` '_' : ''' : []; 195.26/171.48 " 195.26/171.48 "lex12IsSym c = c `elem` '!' : '@' : '#' : '$' : '%' : '&' : '*' : '+' : '.' : '/' : '<' : '=' : '>' : '?' : '\' : '^' : '|' : ':' : '-' : '~' : []; 195.26/171.48 " 195.26/171.48 "lex12IsSingle c = c `elem` ',' : ';' : '(' : ')' : '[' : ']' : '{' : '}' : '_' : '`' : []; 195.26/171.48 " 195.26/171.48 "lex12LexFracExp5 (xvx : xwu) = lex12LexFracExp4 (xvx == '.') (xvx : xwu); 195.26/171.48 lex12LexFracExp5 xwx = lex12LexFracExp2 xwx; 195.26/171.48 " 195.26/171.48 "lex12LexExp00 e c (ds,u) = (e : c : ds,u) : []; 195.26/171.48 lex12LexExp00 e c wy = []; 195.26/171.48 " 195.26/171.48 "lex12LexFracExp1 vu64 = lex12LexFracExp10 vu64; 195.26/171.48 " 195.26/171.48 "lex12LexExp10 e (c : t) = lex12LexExp100 e c t (c `elem` '+' : '-' : []); 195.26/171.48 lex12LexExp10 e xu = []; 195.26/171.48 " 195.26/171.48 "lex12Lex8 c s True = concatMap (lex12Lex3 c) (span lex12IsIdChar s : []); 195.26/171.48 lex12Lex8 c s False = lex12Lex7 c s (isDigit c); 195.26/171.48 " 195.26/171.48 "lex12Lex20 c (sym,t) = (c : sym,t) : []; 195.26/171.48 lex12Lex20 c xz = []; 195.26/171.48 " 195.26/171.48 "lex12Lex30 c (nam,t) = (c : nam,t) : []; 195.26/171.48 lex12Lex30 c yu = []; 195.26/171.48 " 195.26/171.48 "lex12LexFracExp2 s = lex12LexExp s; 195.26/171.48 " 195.26/171.48 "lex12LexFracExp3 xvx c cs True = concatMap lex12LexFracExp1 (lexDigits (c : cs)); 195.26/171.48 lex12LexFracExp3 xvx c cs False = lex12LexFracExp2 (xvx : c : cs); 195.26/171.48 " 195.26/171.48 "lex12LexFracExp00 ds (e,u) = ('.' : ds ++ e,u) : []; 195.26/171.48 lex12LexFracExp00 ds xw = []; 195.26/171.48 " 195.26/171.48 "lex12Lex3 c vu60 = lex12Lex30 c vu60; 195.26/171.48 " 195.26/171.48 "lex12Lex7 c s True = concatMap (lex12Lex5 c) (span isDigit s : []); 195.26/171.48 lex12Lex7 c s False = lex12Lex6 c s otherwise; 195.26/171.48 " 195.26/171.48 "lex12Lex11 c s True = (c : [],s) : []; 195.26/171.48 lex12Lex11 c s False = lex12Lex9 c s (lex12IsSym c); 195.26/171.48 " 195.26/171.48 "lex12LexExp5 (e : s) = lex12LexExp4 e s (e `elem` 'e' : 'E' : []); 195.26/171.48 lex12LexExp5 xvv = lex12LexExp3 xvv; 195.26/171.48 " 195.26/171.48 "lex12LexFracExp0 ds vu63 = lex12LexFracExp00 ds vu63; 195.26/171.48 " 195.26/171.48 "lex12LexFracExp4 True (xvx : c : cs) = lex12LexFracExp3 xvx c cs (isDigit c); 195.26/171.48 lex12LexFracExp4 xwv xww = lex12LexFracExp2 xww; 195.26/171.48 " 195.26/171.48 "lex12LexExp2 e vu67 = lex12LexExp20 e vu67; 195.26/171.48 " 195.26/171.48 "lex12LexExp100 e c t True = concatMap (lex12LexExp0 e c) (lexDigits t); 195.26/171.48 lex12LexExp100 e c t False = []; 195.26/171.48 " 195.26/171.48 "lex12Lex4 c ds vu61 = lex12Lex40 c ds vu61; 195.26/171.48 " 195.26/171.48 "lex12LexExp0 e c vu65 = lex12LexExp00 e c vu65; 195.26/171.48 " 195.26/171.48 "lex12LexExp3 s = ([],s) : []; 195.26/171.48 " 195.26/171.48 "lex12Lex5 c vu62 = lex12Lex50 c vu62; 195.26/171.48 " 195.26/171.48 "lex12LexExp4 e s True = concatMap (lex12LexExp1 e) (s : []) ++ concatMap (lex12LexExp2 e) (lexDigits s); 195.26/171.48 lex12LexExp4 e s False = lex12LexExp3 (e : s); 195.26/171.48 " 195.26/171.48 "lex12Lex6 c s True = []; 195.26/171.48 " 195.26/171.48 "lex12Lex9 c s True = concatMap (lex12Lex2 c) (span lex12IsSym s : []); 195.26/171.48 lex12Lex9 c s False = lex12Lex8 c s (isAlpha c); 195.26/171.48 " 195.26/171.48 "lex12LexFracExp10 (ds,t) = concatMap (lex12LexFracExp0 ds) (lex12LexExp t); 195.26/171.48 lex12LexFracExp10 xv = []; 195.26/171.48 " 195.26/171.48 "lex12LexExp (e : s) = lex12LexExp5 (e : s); 195.26/171.48 lex12LexExp s = lex12LexExp3 s; 195.26/171.48 " 195.26/171.48 "lex12LexFracExp (xvx : xwu) = lex12LexFracExp5 (xvx : xwu); 195.26/171.48 lex12LexFracExp s = lex12LexFracExp2 s; 195.26/171.48 " 195.26/171.48 "lex12LexExp1 e vu66 = lex12LexExp10 e vu66; 195.26/171.48 " 195.26/171.48 "lex12Lex50 c (ds,s) = concatMap (lex12Lex4 c ds) (lex12LexFracExp s); 195.26/171.50 lex12Lex50 c xy = []; 195.26/171.50 " 195.26/171.50 "lex12Lex2 c vu59 = lex12Lex20 c vu59; 195.26/171.50 " 195.26/171.50 The bindings of the following Let/Where expression 195.26/171.50 "readInt 16 isHexDigit hex where { 195.26/171.50 hex d = fromEnum d - hex1 d (isDigit d); 195.26/171.50 ; 195.26/171.50 hex0 True = 'A'; 195.26/171.50 hex0 False = 'a'; 195.26/171.50 ; 195.26/171.50 hex1 d True = fromEnum_0; 195.26/171.50 hex1 d False = fromEnum (hex0 (isUpper d)) - 10; 195.26/171.50 } 195.26/171.50 " 195.26/171.50 are unpacked to the following functions on top level 195.26/171.50 "readHexHex0 True = 'A'; 195.26/171.50 readHexHex0 False = 'a'; 195.26/171.50 " 195.26/171.50 "readHexHex1 d True = fromEnum_0; 195.26/171.50 readHexHex1 d False = fromEnum (readHexHex0 (isUpper d)) - 10; 195.26/171.50 " 195.26/171.50 "readHexHex d = fromEnum d - readHexHex1 d (isDigit d); 195.26/171.50 " 195.26/171.50 The bindings of the following Let/Where expression 195.26/171.50 "readParen0 b where { 195.26/171.50 mandatory r = concatMap mandatory2 (lex r); 195.26/171.50 ; 195.26/171.50 mandatory0 x vu48 = mandatory00 x vu48; 195.26/171.50 ; 195.26/171.50 mandatory00 x (vuzy : vuzz,u) = mandatory002 x (vuzy : vuzz,u); 195.26/171.50 mandatory00 x vyx = mandatory000 x vyx; 195.26/171.50 ; 195.26/171.50 mandatory000 x vyx = []; 195.26/171.50 ; 195.26/171.50 mandatory001 True x (vuzy : [],u) = (x,u) : []; 195.26/171.50 mandatory001 vvuu vvuv vvuw = mandatory000 vvuv vvuw; 195.26/171.50 ; 195.26/171.50 mandatory002 x (vuzy : vuzz,u) = mandatory001 (vuzy == ')') x (vuzy : vuzz,u); 195.26/171.50 mandatory002 vvux vvuy = mandatory000 vvux vvuy; 195.26/171.50 ; 195.26/171.50 mandatory1 vu49 = mandatory10 vu49; 195.26/171.50 ; 195.26/171.50 mandatory10 (x,t) = concatMap (mandatory0 x) (lex t); 195.26/171.50 mandatory10 vyy = []; 195.26/171.50 ; 195.26/171.50 mandatory2 vu50 = mandatory20 vu50; 195.26/171.50 ; 195.26/171.50 mandatory20 (vuyx : vuyy,s) = mandatory202 (vuyx : vuyy,s); 195.26/171.50 mandatory20 vyw = mandatory200 vyw; 195.26/171.50 ; 195.26/171.50 mandatory200 vyw = []; 195.26/171.50 ; 195.26/171.50 mandatory201 True (vuyx : [],s) = concatMap mandatory1 (optional s); 195.26/171.50 mandatory201 vuyz vuzu = mandatory200 vuzu; 195.26/171.50 ; 195.26/171.50 mandatory202 (vuyx : vuyy,s) = mandatory201 (vuyx == '(') (vuyx : vuyy,s); 195.26/171.50 mandatory202 vuzv = mandatory200 vuzv; 195.26/171.50 ; 195.26/171.50 optional r = g r ++ mandatory r; 195.26/171.50 ; 195.26/171.50 readParen0 True = mandatory; 195.26/171.50 readParen0 False = optional; 195.26/171.50 } 195.26/171.50 " 195.26/171.50 are unpacked to the following functions on top level 195.26/171.50 "readParenMandatory202 vvzw (vuyx : vuyy,s) = readParenMandatory201 vvzw (vuyx == '(') (vuyx : vuyy,s); 195.26/171.50 readParenMandatory202 vvzw vuzv = readParenMandatory200 vvzw vuzv; 195.26/171.50 " 195.26/171.50 "readParenMandatory001 vvzw True x (vuzy : [],u) = (x,u) : []; 195.26/171.50 readParenMandatory001 vvzw vvuu vvuv vvuw = readParenMandatory000 vvzw vvuv vvuw; 195.26/171.50 " 195.26/171.50 "readParenMandatory00 vvzw x (vuzy : vuzz,u) = readParenMandatory002 vvzw x (vuzy : vuzz,u); 195.26/171.50 readParenMandatory00 vvzw x vyx = readParenMandatory000 vvzw x vyx; 195.26/171.50 " 195.26/171.50 "readParenReadParen0 vvzw True = readParenMandatory vvzw; 195.26/171.50 readParenReadParen0 vvzw False = readParenOptional vvzw; 195.26/171.50 " 195.26/171.50 "readParenMandatory002 vvzw x (vuzy : vuzz,u) = readParenMandatory001 vvzw (vuzy == ')') x (vuzy : vuzz,u); 195.26/171.50 readParenMandatory002 vvzw vvux vvuy = readParenMandatory000 vvzw vvux vvuy; 195.26/171.50 " 195.26/171.50 "readParenMandatory20 vvzw (vuyx : vuyy,s) = readParenMandatory202 vvzw (vuyx : vuyy,s); 195.26/171.50 readParenMandatory20 vvzw vyw = readParenMandatory200 vvzw vyw; 195.26/171.50 " 195.26/171.50 "readParenMandatory200 vvzw vyw = []; 195.26/171.50 " 195.26/171.50 "readParenMandatory000 vvzw x vyx = []; 195.26/171.50 " 195.26/171.50 "readParenMandatory vvzw r = concatMap (readParenMandatory2 vvzw) (lex r); 195.26/171.50 " 195.26/171.50 "readParenMandatory2 vvzw vu50 = readParenMandatory20 vvzw vu50; 195.26/171.50 " 195.26/171.50 "readParenOptional vvzw r = vvzw r ++ readParenMandatory vvzw r; 195.26/171.50 " 195.26/171.50 "readParenMandatory10 vvzw (x,t) = concatMap (readParenMandatory0 vvzw x) (lex t); 195.26/171.50 readParenMandatory10 vvzw vyy = []; 195.26/171.50 " 195.26/171.50 "readParenMandatory0 vvzw x vu48 = readParenMandatory00 vvzw x vu48; 195.26/171.50 " 195.26/171.50 "readParenMandatory1 vvzw vu49 = readParenMandatory10 vvzw vu49; 195.26/171.50 " 195.26/171.50 "readParenMandatory201 vvzw True (vuyx : [],s) = concatMap (readParenMandatory1 vvzw) (readParenOptional vvzw s); 195.26/171.50 readParenMandatory201 vvzw vuyz vuzu = readParenMandatory200 vvzw vuzu; 195.26/171.50 " 195.26/171.50 The bindings of the following Let/Where expression 195.26/171.50 "getChar >>= getLine1 where { 195.26/171.50 getLine0 c ls = return (c : ls); 195.26/171.50 ; 195.26/171.50 getLine1 c = getLine10 c (c == '\10'); 195.26/171.50 ; 195.26/171.50 getLine10 c True = return []; 195.26/171.50 getLine10 c False = getRest >>= getLine0 c; 195.26/171.50 ; 195.26/171.50 getRest = catch getChar getRest0 >>= getRest2; 195.26/171.50 ; 195.26/171.50 getRest0 ex = getRest00 ex (isEOFError ex); 195.26/171.50 ; 195.26/171.50 getRest00 ex True = return '\10'; 195.26/171.50 getRest00 ex False = ioError ex; 195.26/171.50 ; 195.26/171.50 getRest1 c cs = return (c : cs); 195.26/171.50 ; 195.26/171.50 getRest2 c = getRest20 c (c == '\10'); 195.26/171.50 ; 195.26/171.50 getRest20 c True = return []; 195.26/171.50 getRest20 c False = getRest >>= getRest1 c; 195.26/171.50 } 195.26/171.50 " 195.26/171.50 are unpacked to the following functions on top level 195.26/171.50 "getLineGetRest2 c = getLineGetRest20 c (c == '\10'); 195.26/171.50 " 195.26/171.50 "getLineGetRest = catch getChar getLineGetRest0 >>= getLineGetRest2; 195.26/171.50 " 195.26/171.50 "getLineGetLine10 c True = return []; 195.26/171.50 getLineGetLine10 c False = getLineGetRest >>= getLineGetLine0 c; 195.26/171.50 " 195.26/171.50 "getLineGetRest20 c True = return []; 195.26/171.50 getLineGetRest20 c False = getLineGetRest >>= getLineGetRest1 c; 195.26/171.50 " 195.26/171.50 "getLineGetRest00 ex True = return '\10'; 195.26/171.50 getLineGetRest00 ex False = ioError ex; 195.26/171.50 " 195.26/171.50 "getLineGetLine1 c = getLineGetLine10 c (c == '\10'); 195.26/171.50 " 195.26/171.50 "getLineGetRest1 c cs = return (c : cs); 195.26/171.50 " 195.26/171.50 "getLineGetLine0 c ls = return (c : ls); 195.26/171.50 " 195.26/171.50 "getLineGetRest0 ex = getLineGetRest00 ex (isEOFError ex); 195.26/171.50 " 195.26/171.50 The bindings of the following Let/Where expression 195.26/171.50 "readEsc s where { 195.26/171.50 readEsc (vuvz : s) = readEsc41 (vuvz : s); 195.26/171.50 readEsc (vuvu : s) = readEsc38 (vuvu : s); 195.26/171.50 readEsc (vuuv : s) = readEsc36 (vuuv : s); 195.26/171.50 readEsc (zzw : s) = readEsc34 (zzw : s); 195.26/171.50 readEsc (zyx : s) = readEsc32 (zyx : s); 195.26/171.50 readEsc (zxy : s) = readEsc29 (zxy : s); 195.26/171.50 readEsc (zwz : s) = readEsc27 (zwz : s); 195.26/171.50 readEsc (zwu : s) = readEsc25 (zwu : s); 195.26/171.50 readEsc (zvv : s) = readEsc23 (zvv : s); 195.26/171.50 readEsc (zuw : s) = readEsc21 (zuw : s); 195.26/171.50 readEsc (yzu : yzx) = readEsc18 (yzu : yzx); 195.26/171.50 readEsc (vvu : vvv) = readEsc15 (vvu : vvv); 195.26/171.50 readEsc (yxz : s) = readEsc13 (yxz : s); 195.26/171.50 readEsc (yxu : s) = readEsc11 (yxu : s); 195.26/171.50 readEsc (vvx : vvy) = readEsc8 (vvx : vvy); 195.26/171.50 readEsc vww = readEsc6 vww; 195.26/171.50 ; 195.26/171.50 readEsc0 vu71 = readEsc00 vu71; 195.26/171.50 ; 195.26/171.50 readEsc00 (n,t) = (toEnum n,t) : []; 195.26/171.50 readEsc00 vwx = []; 195.26/171.50 ; 195.26/171.50 readEsc1 vu72 = readEsc10 vu72; 195.26/171.50 ; 195.26/171.50 readEsc10 (n,t) = (toEnum n,t) : []; 195.26/171.50 readEsc10 vwy = []; 195.26/171.50 ; 195.26/171.50 readEsc11 (yxu : s) = readEsc9 (yxu == 'x') (yxu : s); 195.26/171.50 readEsc11 yxx = readEsc8 yxx; 195.26/171.50 ; 195.26/171.50 readEsc12 True (yxz : s) = concatMap readEsc1 (readOct s); 195.26/171.50 readEsc12 yyu yyv = readEsc11 yyv; 195.26/171.50 ; 195.26/171.50 readEsc13 (yxz : s) = readEsc12 (yxz == 'o') (yxz : s); 195.26/171.50 readEsc13 yyw = readEsc11 yyw; 195.26/171.50 ; 195.26/171.50 readEsc14 vvu vvv True = concatMap readEsc0 (readDec (vvu : vvv)); 195.26/171.50 readEsc14 vvu vvv False = readEsc13 (vvu : vvv); 195.26/171.50 ; 195.26/171.50 readEsc15 (vvu : vvv) = readEsc14 vvu vvv (isDigit vvu); 195.26/171.50 readEsc15 yyy = readEsc13 yyy; 195.26/171.50 ; 195.26/171.50 readEsc16 yzu c s True = (toEnum (fromEnum c - fromEnum '@'),s) : []; 195.26/171.50 readEsc16 yzu c s False = readEsc15 (yzu : c : s); 195.26/171.50 ; 195.26/171.50 readEsc17 True (yzu : c : s) = readEsc16 yzu c s (c >= '@' && c <= '_'); 195.26/171.50 readEsc17 yzy yzz = readEsc15 yzz; 195.26/171.50 ; 195.26/171.50 readEsc18 (yzu : yzx) = readEsc17 (yzu == '^') (yzu : yzx); 195.26/171.50 readEsc18 zuu = readEsc15 zuu; 195.26/171.50 ; 195.26/171.50 readEsc19 True (zuw : s) = (''',s) : []; 195.26/171.50 readEsc19 zux zuy = readEsc18 zuy; 195.26/171.50 ; 195.26/171.50 readEsc2 vu73 = readEsc20 vu73; 195.26/171.50 ; 195.26/171.50 readEsc20 (n,t) = (toEnum n,t) : []; 195.26/171.50 readEsc20 vwz = []; 195.26/171.50 ; 195.26/171.50 readEsc21 (zuw : s) = readEsc19 (zuw == ''') (zuw : s); 195.26/171.50 readEsc21 zuz = readEsc18 zuz; 195.26/171.50 ; 195.26/171.50 readEsc22 True (zvv : s) = ('"',s) : []; 195.26/171.50 readEsc22 zvw zvx = readEsc21 zvx; 195.26/171.50 ; 195.26/171.50 readEsc23 (zvv : s) = readEsc22 (zvv == '"') (zvv : s); 195.26/171.50 readEsc23 zvy = readEsc21 zvy; 195.26/171.50 ; 195.26/171.50 readEsc24 True (zwu : s) = ('\',s) : []; 195.26/171.50 readEsc24 zwv zww = readEsc23 zww; 195.26/171.50 ; 195.26/171.50 readEsc25 (zwu : s) = readEsc24 (zwu == '\') (zwu : s); 195.26/171.50 readEsc25 zwx = readEsc23 zwx; 195.26/171.50 ; 195.26/171.50 readEsc26 True (zwz : s) = ('\11',s) : []; 195.26/171.50 readEsc26 zxu zxv = readEsc25 zxv; 195.26/171.50 ; 195.26/171.50 readEsc27 (zwz : s) = readEsc26 (zwz == 'v') (zwz : s); 195.26/171.50 readEsc27 zxw = readEsc25 zxw; 195.26/171.50 ; 195.26/171.50 readEsc28 True (zxy : s) = ('\9',s) : []; 195.26/171.50 readEsc28 zxz zyu = readEsc27 zyu; 195.26/171.50 ; 195.26/171.50 readEsc29 (zxy : s) = readEsc28 (zxy == 't') (zxy : s); 195.26/171.50 readEsc29 zyv = readEsc27 zyv; 195.26/171.50 ; 195.26/171.50 readEsc31 True (zyx : s) = ('\13',s) : []; 195.26/171.50 readEsc31 zyy zyz = readEsc29 zyz; 195.26/171.50 ; 195.26/171.50 readEsc32 (zyx : s) = readEsc31 (zyx == 'r') (zyx : s); 195.26/171.50 readEsc32 zzu = readEsc29 zzu; 195.26/171.50 ; 195.26/171.50 readEsc33 True (zzw : s) = ('\10',s) : []; 195.26/171.50 readEsc33 zzx zzy = readEsc32 zzy; 195.26/171.50 ; 195.26/171.50 readEsc34 (zzw : s) = readEsc33 (zzw == 'n') (zzw : s); 195.26/171.50 readEsc34 zzz = readEsc32 zzz; 195.26/171.50 ; 195.26/171.50 readEsc35 True (vuuv : s) = ('\12',s) : []; 195.26/171.50 readEsc35 vuuw vuux = readEsc34 vuux; 195.26/171.50 ; 195.26/171.50 readEsc36 (vuuv : s) = readEsc35 (vuuv == 'f') (vuuv : s); 195.26/171.50 readEsc36 vuuy = readEsc34 vuuy; 195.26/171.50 ; 195.26/171.50 readEsc37 True (vuvu : s) = ('\8',s) : []; 195.26/171.50 readEsc37 vuvv vuvw = readEsc36 vuvw; 195.26/171.50 ; 195.26/171.50 readEsc38 (vuvu : s) = readEsc37 (vuvu == 'b') (vuvu : s); 195.26/171.50 readEsc38 vuvx = readEsc36 vuvx; 195.26/171.50 ; 195.26/171.50 readEsc39 True (vuvz : s) = ('\7',s) : []; 195.26/171.50 readEsc39 vuwu vuwv = readEsc38 vuwv; 195.26/171.50 ; 195.26/171.50 readEsc41 (vuvz : s) = readEsc39 (vuvz == 'a') (vuvz : s); 195.26/171.50 readEsc41 vuww = readEsc38 vuww; 195.26/171.50 ; 195.26/171.50 readEsc6 vww = []; 195.26/171.50 ; 195.26/171.50 readEsc7 vvx vvy True = let { 195.26/171.50 readEsc3 c vu74 = readEsc30 c vu74; 195.26/171.50 ; 195.26/171.50 readEsc30 c ([],s') = (c,s') : []; 195.26/171.50 readEsc30 c vwv = []; 195.26/171.50 ; 195.26/171.50 readEsc4 s vu75 = readEsc40 s vu75; 195.26/171.50 ; 195.26/171.50 readEsc40 s (c,mne) = concatMap (readEsc3 c) (lexmatch mne s : []); 195.26/171.50 readEsc40 s vwu = []; 195.26/171.50 ; 195.26/171.50 readEsc5 (pr : vvz) = pr : []; 195.26/171.50 readEsc5 [] = []; 195.26/171.50 ; 195.26/171.50 table = ('\127','D' : 'E' : 'L' : []) : asciiTab; 195.26/171.50 } in readEsc5 (concatMap (readEsc4 (vvx : vvy)) table); 195.26/171.50 readEsc7 vvx vvy False = readEsc6 (vvx : vvy); 195.26/171.50 ; 195.26/171.50 readEsc8 (vvx : vvy) = readEsc7 vvx vvy (isUpper vvx); 195.26/171.50 readEsc8 ywy = readEsc6 ywy; 195.26/171.50 ; 195.26/171.50 readEsc9 True (yxu : s) = concatMap readEsc2 (readHex s); 195.26/171.50 readEsc9 yxv yxw = readEsc8 yxw; 195.26/171.50 } 195.26/171.50 " 195.26/171.50 are unpacked to the following functions on top level 195.26/171.50 "readLitChar1ReadEsc41 (vuvz : s) = readLitChar1ReadEsc39 (vuvz == 'a') (vuvz : s); 195.26/171.50 readLitChar1ReadEsc41 vuww = readLitChar1ReadEsc38 vuww; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc2 vu73 = readLitChar1ReadEsc20 vu73; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc34 (zzw : s) = readLitChar1ReadEsc33 (zzw == 'n') (zzw : s); 195.26/171.50 readLitChar1ReadEsc34 zzz = readLitChar1ReadEsc32 zzz; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc36 (vuuv : s) = readLitChar1ReadEsc35 (vuuv == 'f') (vuuv : s); 195.26/171.50 readLitChar1ReadEsc36 vuuy = readLitChar1ReadEsc34 vuuy; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc18 (yzu : yzx) = readLitChar1ReadEsc17 (yzu == '^') (yzu : yzx); 195.26/171.50 readLitChar1ReadEsc18 zuu = readLitChar1ReadEsc15 zuu; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc38 (vuvu : s) = readLitChar1ReadEsc37 (vuvu == 'b') (vuvu : s); 195.26/171.50 readLitChar1ReadEsc38 vuvx = readLitChar1ReadEsc36 vuvx; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc26 True (zwz : s) = ('\11',s) : []; 195.26/171.50 readLitChar1ReadEsc26 zxu zxv = readLitChar1ReadEsc25 zxv; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc27 (zwz : s) = readLitChar1ReadEsc26 (zwz == 'v') (zwz : s); 195.26/171.50 readLitChar1ReadEsc27 zxw = readLitChar1ReadEsc25 zxw; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc17 True (yzu : c : s) = readLitChar1ReadEsc16 yzu c s (c >= '@' && c <= '_'); 195.26/171.50 readLitChar1ReadEsc17 yzy yzz = readLitChar1ReadEsc15 yzz; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc23 (zvv : s) = readLitChar1ReadEsc22 (zvv == '"') (zvv : s); 195.26/171.50 readLitChar1ReadEsc23 zvy = readLitChar1ReadEsc21 zvy; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc6 vww = []; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc28 True (zxy : s) = ('\9',s) : []; 195.26/171.50 readLitChar1ReadEsc28 zxz zyu = readLitChar1ReadEsc27 zyu; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc11 (yxu : s) = readLitChar1ReadEsc9 (yxu == 'x') (yxu : s); 195.26/171.50 readLitChar1ReadEsc11 yxx = readLitChar1ReadEsc8 yxx; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc1 vu72 = readLitChar1ReadEsc10 vu72; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc31 True (zyx : s) = ('\13',s) : []; 195.26/171.50 readLitChar1ReadEsc31 zyy zyz = readLitChar1ReadEsc29 zyz; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc14 vvu vvv True = concatMap readLitChar1ReadEsc0 (readDec (vvu : vvv)); 195.26/171.50 readLitChar1ReadEsc14 vvu vvv False = readLitChar1ReadEsc13 (vvu : vvv); 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc0 vu71 = readLitChar1ReadEsc00 vu71; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc19 True (zuw : s) = (''',s) : []; 195.26/171.50 readLitChar1ReadEsc19 zux zuy = readLitChar1ReadEsc18 zuy; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc15 (vvu : vvv) = readLitChar1ReadEsc14 vvu vvv (isDigit vvu); 195.26/171.50 readLitChar1ReadEsc15 yyy = readLitChar1ReadEsc13 yyy; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc13 (yxz : s) = readLitChar1ReadEsc12 (yxz == 'o') (yxz : s); 195.26/171.50 readLitChar1ReadEsc13 yyw = readLitChar1ReadEsc11 yyw; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc35 True (vuuv : s) = ('\12',s) : []; 195.26/171.50 readLitChar1ReadEsc35 vuuw vuux = readLitChar1ReadEsc34 vuux; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc20 (n,t) = (toEnum n,t) : []; 195.26/171.50 readLitChar1ReadEsc20 vwz = []; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc8 (vvx : vvy) = readLitChar1ReadEsc7 vvx vvy (isUpper vvx); 195.26/171.50 readLitChar1ReadEsc8 ywy = readLitChar1ReadEsc6 ywy; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc25 (zwu : s) = readLitChar1ReadEsc24 (zwu == '\') (zwu : s); 195.26/171.50 readLitChar1ReadEsc25 zwx = readLitChar1ReadEsc23 zwx; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc22 True (zvv : s) = ('"',s) : []; 195.26/171.50 readLitChar1ReadEsc22 zvw zvx = readLitChar1ReadEsc21 zvx; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc32 (zyx : s) = readLitChar1ReadEsc31 (zyx == 'r') (zyx : s); 195.26/171.50 readLitChar1ReadEsc32 zzu = readLitChar1ReadEsc29 zzu; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc (vuvz : s) = readLitChar1ReadEsc41 (vuvz : s); 195.26/171.50 readLitChar1ReadEsc (vuvu : s) = readLitChar1ReadEsc38 (vuvu : s); 195.26/171.50 readLitChar1ReadEsc (vuuv : s) = readLitChar1ReadEsc36 (vuuv : s); 195.26/171.50 readLitChar1ReadEsc (zzw : s) = readLitChar1ReadEsc34 (zzw : s); 195.26/171.50 readLitChar1ReadEsc (zyx : s) = readLitChar1ReadEsc32 (zyx : s); 195.26/171.50 readLitChar1ReadEsc (zxy : s) = readLitChar1ReadEsc29 (zxy : s); 195.26/171.50 readLitChar1ReadEsc (zwz : s) = readLitChar1ReadEsc27 (zwz : s); 195.26/171.50 readLitChar1ReadEsc (zwu : s) = readLitChar1ReadEsc25 (zwu : s); 195.26/171.50 readLitChar1ReadEsc (zvv : s) = readLitChar1ReadEsc23 (zvv : s); 195.26/171.50 readLitChar1ReadEsc (zuw : s) = readLitChar1ReadEsc21 (zuw : s); 195.26/171.50 readLitChar1ReadEsc (yzu : yzx) = readLitChar1ReadEsc18 (yzu : yzx); 195.26/171.50 readLitChar1ReadEsc (vvu : vvv) = readLitChar1ReadEsc15 (vvu : vvv); 195.26/171.50 readLitChar1ReadEsc (yxz : s) = readLitChar1ReadEsc13 (yxz : s); 195.26/171.50 readLitChar1ReadEsc (yxu : s) = readLitChar1ReadEsc11 (yxu : s); 195.26/171.50 readLitChar1ReadEsc (vvx : vvy) = readLitChar1ReadEsc8 (vvx : vvy); 195.26/171.50 readLitChar1ReadEsc vww = readLitChar1ReadEsc6 vww; 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc16 yzu c s True = (toEnum (fromEnum c - fromEnum '@'),s) : []; 195.26/171.50 readLitChar1ReadEsc16 yzu c s False = readLitChar1ReadEsc15 (yzu : c : s); 195.26/171.50 " 195.26/171.50 "readLitChar1ReadEsc24 True (zwu : s) = ('\',s) : []; 195.26/171.51 readLitChar1ReadEsc24 zwv zww = readLitChar1ReadEsc23 zww; 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc00 (n,t) = (toEnum n,t) : []; 195.26/171.51 readLitChar1ReadEsc00 vwx = []; 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc39 True (vuvz : s) = ('\7',s) : []; 195.26/171.51 readLitChar1ReadEsc39 vuwu vuwv = readLitChar1ReadEsc38 vuwv; 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc37 True (vuvu : s) = ('\8',s) : []; 195.26/171.51 readLitChar1ReadEsc37 vuvv vuvw = readLitChar1ReadEsc36 vuvw; 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc21 (zuw : s) = readLitChar1ReadEsc19 (zuw == ''') (zuw : s); 195.26/171.51 readLitChar1ReadEsc21 zuz = readLitChar1ReadEsc18 zuz; 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc33 True (zzw : s) = ('\10',s) : []; 195.26/171.51 readLitChar1ReadEsc33 zzx zzy = readLitChar1ReadEsc32 zzy; 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc9 True (yxu : s) = concatMap readLitChar1ReadEsc2 (readHex s); 195.26/171.51 readLitChar1ReadEsc9 yxv yxw = readLitChar1ReadEsc8 yxw; 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc7 vvx vvy True = readLitChar1ReadEsc7ReadEsc5 (concatMap (readLitChar1ReadEsc7ReadEsc4 (vvx : vvy)) readLitChar1ReadEsc7Table); 195.26/171.51 readLitChar1ReadEsc7 vvx vvy False = readLitChar1ReadEsc6 (vvx : vvy); 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc10 (n,t) = (toEnum n,t) : []; 195.26/171.51 readLitChar1ReadEsc10 vwy = []; 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc29 (zxy : s) = readLitChar1ReadEsc28 (zxy == 't') (zxy : s); 195.26/171.51 readLitChar1ReadEsc29 zyv = readLitChar1ReadEsc27 zyv; 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc12 True (yxz : s) = concatMap readLitChar1ReadEsc1 (readOct s); 195.26/171.51 readLitChar1ReadEsc12 yyu yyv = readLitChar1ReadEsc11 yyv; 195.26/171.51 " 195.26/171.51 The bindings of the following Let/Where expression 195.26/171.51 "let { 195.26/171.51 readEsc3 c vu74 = readEsc30 c vu74; 195.26/171.51 ; 195.26/171.51 readEsc30 c ([],s') = (c,s') : []; 195.26/171.51 readEsc30 c vwv = []; 195.26/171.51 ; 195.26/171.51 readEsc4 s vu75 = readEsc40 s vu75; 195.26/171.51 ; 195.26/171.51 readEsc40 s (c,mne) = concatMap (readEsc3 c) (lexmatch mne s : []); 195.26/171.51 readEsc40 s vwu = []; 195.26/171.51 ; 195.26/171.51 readEsc5 (pr : vvz) = pr : []; 195.26/171.51 readEsc5 [] = []; 195.26/171.51 ; 195.26/171.51 table = ('\127','D' : 'E' : 'L' : []) : asciiTab; 195.26/171.51 } in readEsc5 (concatMap (readEsc4 (vvx : vvy)) table)" 195.26/171.51 are unpacked to the following functions on top level 195.26/171.51 "readLitChar1ReadEsc7ReadEsc40 s (c,mne) = concatMap (readLitChar1ReadEsc7ReadEsc3 c) (lexmatch mne s : []); 195.26/171.51 readLitChar1ReadEsc7ReadEsc40 s vwu = []; 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc7ReadEsc5 (pr : vvz) = pr : []; 195.26/171.51 readLitChar1ReadEsc7ReadEsc5 [] = []; 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc7ReadEsc3 c vu74 = readLitChar1ReadEsc7ReadEsc30 c vu74; 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc7ReadEsc30 c ([],s') = (c,s') : []; 195.26/171.51 readLitChar1ReadEsc7ReadEsc30 c vwv = []; 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc7Table = ('\127','D' : 'E' : 'L' : []) : asciiTab; 195.26/171.51 " 195.26/171.51 "readLitChar1ReadEsc7ReadEsc4 s vu75 = readLitChar1ReadEsc7ReadEsc40 s vu75; 195.26/171.51 " 195.26/171.51 195.26/171.51 ---------------------------------------- 195.26/171.51 195.26/171.51 (12) 195.26/171.51 Obligation: 195.26/171.51 mainModule Main 195.26/171.51 module Main where { 195.26/171.51 import qualified Prelude; 195.26/171.51 } 195.26/171.51 195.26/171.51 ---------------------------------------- 195.26/171.51 195.26/171.51 (13) NumRed (SOUND) 195.26/171.51 Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. 195.26/171.51 ---------------------------------------- 195.26/171.51 195.26/171.51 (14) 195.26/171.51 Obligation: 195.26/171.51 mainModule Main 195.26/171.51 module Main where { 195.26/171.51 import qualified Prelude; 195.26/171.51 } 195.44/171.54 EOF