Prog "Dequeue" ["Prelude"] [Type ((Nothing,Nothing,"Dequeue","Queue")) Public [0] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) 4 Private [TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0],TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]]]] [Func ((Nothing,Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),"Dequeue","empty")) 0 Public (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (Rule [] (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [Lit (Intc 0),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) [],Lit (Intc 0),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Dequeue","isEmpty")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (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") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))],Lit (Intc 0)])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TVar 0)),"Dequeue","deqHead")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)),"Prelude","head")) [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","[]") [TVar 0]),5))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TVar 0)),"Dequeue","deqLast")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TVar 0)),"Prelude","head")) [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") []),4)),Lit (Intc 0)]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)))]])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))),"Dequeue","cons")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),2)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) [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)),Lit (Intc 1)],Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","deqTail")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),"Dequeue","empty")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","deqReverse")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)),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)],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))]])])])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))),"Dequeue","snoc")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),2)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),2))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","deqReverse")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) [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") []),5)),Lit (Intc 1)],Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [Var ((Just (TVar 0),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),6))],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","deqInit")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),"Dequeue","empty")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),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") []),4)),Lit (Intc 1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","deqReverse")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) 4 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)] (Let [((Just (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") []))),"Prelude","+")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),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") []),5)),Lit (Intc 2)])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),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") []),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6))])] (Let [((Just (TVar 46),8),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 47]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 47],TCons (Nothing,Nothing,"Prelude","[]") [TVar 47]]))),"Prelude","splitAt")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 48],TCons (Nothing,Nothing,"Prelude","[]") [TVar 48]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 48])),"Dequeue","check._#selFP3#f'")) [Var ((Just (TVar 46),8))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),10),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 49],TCons (Nothing,Nothing,"Prelude","[]") [TVar 49]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 49])),"Dequeue","check._#selFP4#rf'")) [Var ((Just (TVar 46),8))])] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),11),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 53]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 53]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 53]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 51) (TVar 52)) (FuncType (TVar 51) (TVar 52))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 50]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 50])),"Prelude","reverse")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),10))]])] (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)),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") []))),"Prelude","*")) [Lit (Intc 3),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3))],Lit (Intc 1)]]) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),4))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Case Rigid (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","otherwise")) []) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),6)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),11))]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),"Prelude","failed")) [])])]))))))))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45])),"Dequeue","check._#selFP3#f'")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 45],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 45]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 45])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]),1)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]) (FuncType (TVar 48) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]))),"Prelude","(,)")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]),2),(Just (TVar 48),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]),2)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45])),"Dequeue","check._#selFP4#rf'")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 45],TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 45]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 45])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]),1)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 47) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","[]") [TVar 45],TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]]))),"Prelude","(,)")) [(Just (TVar 47),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]),3)]) (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 45]),3)))])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","listToDeq")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Prelude","length")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1))],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),1)),Lit (Intc 0),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Dequeue","deqToList")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"Prelude","reverse")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Int") [])),"Dequeue","deqLength")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Int")) [])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (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") []),4))])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","rotate")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))),"Dequeue","snoc")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TVar 0)),"Dequeue","deqHead")) [Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","deqTail")) [Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]])),"Dequeue","matchHead")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]]])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]]),"Prelude","Nothing")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)]) (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]])),"Prelude","Just")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 15]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]))),"Prelude","(,)")) [Var ((Just (TVar 0),6)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 15]),"Dequeue","empty")) []]])])]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),8),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]])),"Prelude","Just")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]))),"Prelude","(,)")) [Var ((Just (TVar 0),8)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0])),"Dequeue","deqReverse")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)),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)],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9))]]]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]])),"Dequeue","matchLast")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TCons ((Nothing,Nothing,"Dequeue","Queue")) [TVar 0]]])) (Rule [(Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1)] (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","S")) [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5)]) (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),5))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]]),"Prelude","Nothing")) []),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),6),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7)]) (Case Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),7))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),"Prelude","[]")) []) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]])),"Prelude","Just")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 15]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]))),"Prelude","(,)")) [Var ((Just (TVar 0),6)),Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 15]),"Dequeue","empty")) []]])])]),Branch (Pattern ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude",":")) [(Just (TVar 0),8),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9)]) (Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]])),"Prelude","Just")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]]))),"Prelude","(,)")) [Var ((Just (TVar 0),8)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Dequeue","Queue") [TVar 0]))))),"Dequeue","check")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),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") []),4)),Lit (Intc 1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]),9))]]])])]))] []