| Some _ -> assert false (* t must be a coercion not to funclass *)
;;
-let generate_dot_file () =
- let l = CoercDb.to_list () in
+let generate_dot_file fmt =
+ let l = CoercDb.to_list (CoercDb.dump ()) in
let module Pp = GraphvizPp.Dot in
- let buf = Buffer.create 10240 in
- let fmt = Format.formatter_of_buffer buf in
- Pp.header ~node_attrs:["fontsize", "9"; "width", ".4"; "height", ".4"]
- ~edge_attrs:["fontsize", "10"] fmt;
if List.exists (fun (_,t,_) -> CoercDb.string_of_carr t = "Type") l then
Format.fprintf fmt "subgraph cluster_rest { style=\"filled\";
color=\"white\"; label=<%s>; labelloc=\"b\"; %s; }\n"
fmt)
ul)
l;
- Pp.trailer fmt;
- Buffer.contents buf
;;
let coerced_arg l =
(* : carr -> (carr * uri option) where the option is always Some *)
let get_coercions_to carr =
- let l = CoercDb.to_list () in
+ let l = CoercDb.to_list (CoercDb.dump ()) in
let splat_coercion_to carr (src,tgt,cl) =
if CoercDb.eq_carr tgt carr then Some (splat src cl) else None
in
(* : carr -> (carr * uri option) where the option is always Some *)
let get_coercions_from carr =
- let l = CoercDb.to_list () in
+ let l = CoercDb.to_list (CoercDb.dump ()) in
let splat_coercion_from carr (src,tgt,cl) =
if CoercDb.eq_carr src carr then Some (splat tgt cl) else None
in