explicit references avoid dynamic lookup
authorhaftmann
Fri, 11 Jan 2013 08:17:47 +0100
changeset 50818 5d4852f1b952
parent 50817 652731d92061
child 50820 e8d641235191
child 50821 95a61264a6ab
child 50831 7784cc660580
explicit references avoid dynamic lookup
src/HOL/Tools/Quickcheck/random_generators.ML
--- a/src/HOL/Tools/Quickcheck/random_generators.ML	Fri Jan 11 08:17:39 2013 +0100
+++ b/src/HOL/Tools/Quickcheck/random_generators.ML	Fri Jan 11 08:17:47 2013 +0100
@@ -449,9 +449,11 @@
       end
   end;
 
-fun size_matters_for _ Ts = not (forall
-  (fn Type (tyco, []) => is_some (try (unprefix "Enum.finite") tyco) | _ => false) Ts)
-    (*FIXME eliminate dynamic name reference*)
+val size_types = [@{type_name Enum.finite_1}, @{type_name Enum.finite_2},
+  @{type_name Enum.finite_3}, @{type_name Enum.finite_4}, @{type_name Enum.finite_5}];
+
+fun size_matters_for _ Ts =
+  not (forall (fn Type (tyco, []) => member (op =) size_types tyco | _ => false) Ts);
 
 val test_goals =
   Quickcheck_Common.generator_test_goal_terms ("random", (size_matters_for, compile_generator_expr));