Prog "Integer" ["Prelude"] [] [Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","pow")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","pow.powaux.3")) [Lit (Intc 1),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","failed")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","pow.powaux.3")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","pow.powaux.3")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc 2)],Lit (Intc 1)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Lit (Intc 1))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Lit (Intc 2)]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","ilog")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 10)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc 0)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Lit (Intc 1),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","ilog")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 10)]]])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","failed")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","isqrt")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc 0)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 4)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc 1)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","isqrt.aux.21")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 2),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","failed")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","isqrt.aux.21")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 1)]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))],Lit (Intc 2)])] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","isqrt.aux.21")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","isqrt.aux.21")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))])]))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","factorial")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc 1)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","factorial")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 1)]]])]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","failed")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","binomial")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","&&")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 0)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude",">=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","binomial.aux.41")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","factorial")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Int") []),"Prelude","failed")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","binomial.aux.41")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc 1)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","binomial.aux.41")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 1)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 1)]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","abs")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","negate")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","max")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","min")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","<")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","max3")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","max")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","max")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])))),"Integer","min3")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","min")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","min")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","maxlist")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3)]) (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","max")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","maxlist")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5))]]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","minlist")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3)]) (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","min")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","minlist")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),5))]]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitTrunc")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitAnd")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","pow")) [Lit (Intc 2),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))],Lit (Intc 1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitAnd")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc 0)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc 2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitAnd")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 2)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 2)]]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 2) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 2)],Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc 0)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 2)])])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))])))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitOr")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc 2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitOr")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 2)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 2)]]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 2) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 2)],Lit (Intc 1)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc 1)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 2)])])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))])))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Integer","bitNot")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitNot.aux.100")) [Lit (Intc 32),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitNot.aux.100")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc 0)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc 2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitNot.aux.100")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 1)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 2)]]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","-")) [Lit (Intc 1),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 2)]])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))])))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitXor")) 2 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Int")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)] (Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","*")) [Lit (Intc 2),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Integer","bitXor")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 2)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","div")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 2)]]])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),Case Rigid (Comb FuncCall ((Nothing,Just (FuncType (TVar 2) (FuncType (TVar 2) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Lit (Intc 2)],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 2)]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Lit (Intc 0)),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Lit (Intc 1))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))])))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Integer","even")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 2)],Lit (Intc 0)])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Integer","odd")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","/=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","Int") []))),"Prelude","mod")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Lit (Intc 2)],Lit (Intc 0)]))] []