package catala

  1. Overview
  2. Docs
Compiler and library for the literate programming language for tax code specification

Install

dune-project
 Dependency

Authors

Maintainers

Sources

1.0.0.tar.gz
md5=42196e9a9c5e12839b38cb3da935f10c
sha512=ede2d8c17dcb936c1c8c596f1453bf89370a2f824a190efe74e438d7d7f7f83875c1ecbc18219c6a8a3e98b3ab4da1c3a6cc4e534687dbc90f3dca8230f43f7b

doc/src/catala.catala_utils/graphs.ml.html

Source file graphs.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
module JSON_Graph
    (V : sig
      include Graph.Sig.COMPARABLE

      val format : Format.formatter -> t -> unit
    end)
    (G : Graph.Sig.G with type V.t = V.t) =
struct
  let graph_to_json g =
    let nodes =
      G.fold_vertex
        (fun v acc ->
          (string_of_int (G.V.hash v), `String (Format.asprintf "%a" V.format v))
          :: acc)
        g []
    in
    let nodes = `Assoc nodes in
    let edges =
      G.fold_edges
        (fun v1 v2 acc ->
          `Assoc ["from", `Int (V.hash v1); "to", `Int (V.hash v2)] :: acc)
        g []
    in
    let edges = `List edges in
    `Assoc ["nodes", nodes; "edges", edges]
end