(* This code extends 'mini_prelude'. *) Dtype [(["a"],"tree", [("Tree", [Tapp [Tvar "a"] "tree"; Tvar "a"; Tapp [Tvar "a"] "tree"]); ("Empty",[])])] Dlet (Pvar "empty") (Con "Empty" []) Dletrec [("member","v4", Fun "v5" (Fun "v6" (Mat (Var "v6") [(Pcon "Empty" [],Val (Lit (Bool F))); (Pcon "Tree" [Pvar "v3"; Pvar "v2"; Pvar "v1"], If (App Opapp (App Opapp (Var "v4") (Var "v5")) (Var "v2")) (App Opapp (App Opapp (App Opapp (Var "member") (Var "v4")) (Var "v5")) (Var "v3")) (If (App Opapp (App Opapp (Var "v4") (Var "v2")) (Var "v5")) (App Opapp (App Opapp (App Opapp (Var "member") (Var "v4")) (Var "v5")) (Var "v1")) (Val (Lit (Bool T)))))])))] Dletrec [("insert","v4", Fun "v5" (Fun "v6" (Mat (Var "v6") [(Pcon "Empty" [], Con "Tree" [Con "Empty" []; Var "v5"; Con "Empty" []]); (Pcon "Tree" [Pvar "v3"; Pvar "v2"; Pvar "v1"], If (App Opapp (App Opapp (Var "v4") (Var "v5")) (Var "v2")) (Con "Tree" [App Opapp (App Opapp (App Opapp (Var "insert") (Var "v4")) (Var "v5")) (Var "v3"); Var "v2"; Var "v1"]) (If (App Opapp (App Opapp (Var "v4") (Var "v2")) (Var "v5")) (Con "Tree" [Var "v3"; Var "v2"; App Opapp (App Opapp (App Opapp (Var "insert") (Var "v4")) (Var "v5")) (Var "v1")]) (Con "Tree" [Var "v3"; Var "v2"; Var "v1"])))])))]