| None -> []
| Some (main, types) ->
(* the type of eq is not counted in constants_no *)
- let constants_no = StringSet.cardinal constants in
+ let types_no = List.length types in
+ let constants_no = StringSet.cardinal constants + types_no in
if (constants_no > critical_value) then
let prefixes = prefixes just_factor t in
(match prefixes with
(* in this case we compute all prefixes, and we do not need
to apply the only constraints *)
let prefixes =
- if constants_no = 0 then
- Some main, [0, []; List.length types, types]
+ if constants_no = types_no then
+ Some main, [0, []; types_no, types]
else
prefixes constants_no t
in