(Lambda "f" (Lambda "l" (Application (Application (Application (Primitive "if-then-else") (Application (Application (Application (Primitive "if-then-else") (Application (Primitive "null") (List []) Boolean) (Arrow Boolean (Arrow Boolean Boolean))) (Application (Primitive "null") (Variable "l") Boolean) (Arrow Boolean Boolean)) (Application (Primitive "head") (List []) Boolean) Boolean) (Arrow (ListType (GenType "G2")) (Arrow (ListType (GenType "G2")) (ListType (GenType "G2"))))) (Application (Primitive "head") (Application (Application (Application (Primitive "if-then-else") (Application (Primitive "null") (List []) Boolean) (Arrow (ListType (ListType (GenType "G2"))) (Arrow (ListType (ListType (GenType "G2"))) (ListType (ListType (GenType "G2")))))) (Application (Application (Primitive "cons") (List []) (Arrow (ListType (ListType (GenType "G2"))) (ListType (ListType (GenType "G2"))))) (List []) (ListType (ListType (GenType "G2")))) (Arrow (ListType (ListType (GenType "G2"))) (ListType (ListType (GenType "G2"))))) (Application (Primitive "tail") (List []) (ListType (ListType (GenType "G2")))) (ListType (ListType (GenType "G2")))) (ListType (GenType "G2"))) (Arrow (ListType (GenType "G2")) (ListType (GenType "G2")))) (Application (Application (Primitive "cons") (Application (Variable "f") (Application (Primitive "head") (Variable "l") (GenType "G1")) (GenType "G2")) (Arrow (ListType (GenType "G2")) (ListType (GenType "G2")))) (Application (Application (Function "map") (Variable "f") (Arrow (ListType (GenType "G1")) (ListType (GenType "G2")))) (Application (Primitive "tail") (Variable "l") (ListType (GenType "G1"))) (ListType (GenType "G2"))) (ListType (GenType "G2"))) (ListType (GenType "G2")))), 100.0) "Done"