summaryrefslogtreecommitdiffstats
path: root/typing/btype.ml
diff options
context:
space:
mode:
Diffstat (limited to 'typing/btype.ml')
-rw-r--r--typing/btype.ml12
1 files changed, 11 insertions, 1 deletions
diff --git a/typing/btype.ml b/typing/btype.ml
index 16254e622..759ed50f5 100644
--- a/typing/btype.ml
+++ b/typing/btype.ml
@@ -314,7 +314,16 @@ let unmark_type_decl decl =
begin match decl.type_kind with
Type_abstract -> ()
| Type_variant cstrs ->
- List.iter (fun (c, tl) -> List.iter unmark_type tl) cstrs
+ List.iter
+ (fun (c, tl) ->
+ List.iter unmark_type tl)
+ cstrs (* GAH: WHAT DOES UNMARK DO??? *)
+ | Type_generalized_variant cstrs ->
+ List.iter
+ (fun (c, tl,ret_type_opt) ->
+ List.iter unmark_type tl;
+ Misc.may unmark_type ret_type_opt)
+ cstrs (* GAH: WHAT DOES UNMARK DO??? *)
| Type_record(lbls, rep) ->
List.iter (fun (c, mut, t) -> unmark_type t) lbls
end;
@@ -514,5 +523,6 @@ let backtrack (changes, old) =
(**** Sets, maps and hashtables of types ****)
module TypeSet = Set.Make(TypeOps)
+module TypeSetPair = Set.Make(struct type t = TypeOps.t * TypeOps.t let compare (x1,x2) (y1,y2) = let r = TypeOps.compare x1 y1 in if r == 0 then TypeOps.compare x2 y2 else r end)
module TypeMap = Map.Make (TypeOps)
module TypeHash = Hashtbl.Make(TypeOps)