Prog "Read" ["Char","Prelude"] [] [Func ("Read","readNat") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Comb FuncCall ("Read","readNat.readNatPrefix.3") [Comb FuncCall ("Prelude","dropWhile") [Comb (FuncPartCall 1) ("Read","readNat._#lambda2") [],Var 1],Lit (Intc 0)])),Func ("Read","readNat.readNatPrefix.3") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [3,4]) (Let [(5,Comb FuncCall ("Prelude","ord") [Var 3])] (Case Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">=") [Var 5,Comb FuncCall ("Prelude","ord") [Lit (Charc '0')]],Comb FuncCall ("Prelude","<=") [Var 5,Comb FuncCall ("Prelude","ord") [Lit (Charc '9')]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Read","readNat.readNatPrefix.3") [Var 4,Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","*") [Var 2,Lit (Intc 10)],Var 5],Comb FuncCall ("Prelude","ord") [Lit (Charc '0')]]]),Branch (Pattern ("Prelude","False") []) (Var 2)]))])),Func ("Read","readNat._#lambda2") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc ' ')])),Func ("Read","readInt") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Comb FuncCall ("Read","readInt.readIntPrefix.14") [Comb FuncCall ("Prelude","dropWhile") [Comb (FuncPartCall 1) ("Read","readInt._#lambda3") [],Var 1]])),Func ("Read","readInt.readIntPrefix.14") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Lit (Intc 0)),Branch (Pattern ("Prelude",":") [2,3]) (Case Rigid (Comb FuncCall ("Prelude","==") [Var 2,Lit (Charc '-')]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","negate") [Comb FuncCall ("Read","readNat") [Var 3]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Read","readNat") [Comb ConsCall ("Prelude",":") [Var 2,Var 3]])])])),Func ("Read","readInt._#lambda3") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc ' ')])),Func ("Read","readHex") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Comb FuncCall ("Read","readHex.readHexPrefix.22") [Comb FuncCall ("Prelude","dropWhile") [Comb (FuncPartCall 1) ("Read","readHex._#lambda4") [],Var 1],Lit (Intc 0)])),Func ("Read","readHex.hex2int.22") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Int") [])) (Rule [1] (Case Rigid (Comb FuncCall ("Char","isDigit") [Var 1]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc '0')]]),Branch (Pattern ("Prelude","False") []) (Case Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude",">=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc 'A')]],Comb FuncCall ("Prelude","<=") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc 'F')]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","ord") [Var 1],Comb FuncCall ("Prelude","ord") [Lit (Charc 'A')]],Lit (Intc 10)]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","negate") [Lit (Intc 1)])])])),Func ("Read","readHex.readHexPrefix.22") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Int") []))) (Rule [1,2] (Case Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [3,4]) (Let [(5,Comb FuncCall ("Read","readHex.hex2int.22") [Var 3])] (Case Rigid (Comb FuncCall ("Prelude",">=") [Var 5,Lit (Intc 0)]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Read","readHex.readHexPrefix.22") [Var 4,Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","*") [Var 2,Lit (Intc 16)],Var 5]]),Branch (Pattern ("Prelude","False") []) (Var 2)]))])),Func ("Read","readHex._#lambda4") 1 Private (FuncType (TCons ("Prelude","Char") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","==") [Var 1,Lit (Charc ' ')]))] []