Detect cycles in type declarations
[tiger.ml.git] / compiler / src / lib / tiger / tiger_map_red_black.ml
index b339b52..4713943 100644 (file)
@@ -99,3 +99,12 @@ let to_dot t ~k_to_string =
     )
   in
   "digraph G {" ^ dot_edges_and_nodes ^ "}"
+
+let of_list pairs =
+  List.fold_left pairs ~init:empty ~f:(fun t (k, v) -> set t ~k ~v)
+
+let rec to_list = function
+  | Leaf ->
+      []
+  | Node (_, pair, left, right) ->
+      pair :: ((to_list left) @ (to_list right))
This page took 0.020046 seconds and 4 git commands to generate.