use Term.add_tfreesT
authorhuffman
Tue, 26 Oct 2010 08:36:52 -0700
changeset 40214 6ba118594692
parent 40213 b63e966564da
child 40215 d8fd7ae0254f
use Term.add_tfreesT
src/HOLCF/Tools/Domain/domain_constructors.ML
--- a/src/HOLCF/Tools/Domain/domain_constructors.ML	Sun Oct 24 15:42:57 2010 -0700
+++ b/src/HOLCF/Tools/Domain/domain_constructors.ML	Tue Oct 26 08:36:52 2010 -0700
@@ -402,7 +402,7 @@
     val abs_inverse = iso_locale RS @{thm iso.abs_iso};
 
     (* calculate function arguments of case combinator *)
-    val tns = map (fst o dest_TFree) (snd (dest_Type lhsT));
+    val tns = map fst (Term.add_tfreesT lhsT []);
     val resultT = TFree (Name.variant tns "'t", @{sort pcpo});
     fun fTs T = map (fn (_, args) => map snd args -->> T) spec;
     val fns = Datatype_Prop.indexify_names (map (K "f") spec);
@@ -770,7 +770,7 @@
     (* get a fresh type variable for the result type *)
     val resultT : typ =
       let
-        val ts : string list = map (fst o dest_TFree) (snd (dest_Type lhsT));
+        val ts : string list = map fst (Term.add_tfreesT lhsT []);
         val t : string = Name.variant ts "'t";
       in TFree (t, @{sort pcpo}) end;