Browse thread
Inter-module dependences
- Damien Bobillot
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2005-06-15 (12:19) |
From: | Damien Bobillot <damien.bobillot@m...> |
Subject: | Inter-module dependences |
--Apple-Mail-3-944324957 Content-Type: multipart/alternative; boundary=Apple-Mail-2-944324183 --Apple-Mail-2-944324183 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Hello, I'm defining a graph structure compatible with the ocamlgraph library. I want to be able to access all neighbors and edge to neighbors of a vertex in 0(1), so I think I need to store the outgoing edge list of each vertex in the vertex structure. I also need to be able to access the source and destination of an edge in 0(1), so I store these vertex in the edge structure. A standard Caml will be : type vertex = { label : int; out_edges : edge list; ... } and edge = { label : int; src : vertex; dst : vertex; ... } However, in ocamlgraph, the vertex and edge type must be defined by modules of signatures (and I cannot modify it) : module type VERTEX = sig type t type label val create : label -> t val label : t -> label end module type EDGE = sig type t type label type vertex val create : vertex -> label -> vertex -> t val label : t -> label val src : t -> vertex val dst : t -> vertex end module type GRAPH = sig module V : VERTEX module E : EDGE ... end Then the graph structure is generally created with a functor like : module Make_Graph(V : VERTEX)(E : EDGE with type vertex = V.t) = struct module V = V module E = E ... end It works fine, but it doesn't respond to my problem : I want that V use a type from E and at the same time E use a type of V. So I write the following code : module type MYVERTEX = sig include VERTEX type edge val out_edges : t -> edge list end module MyVertex = struct type edge type t = { label : int; out_edges : edge list } let out_edges v = v.out_edges ... end module MyEdge = struct type vertex type t = { label : int; src : vertex; dst : vertex } ... end module Make_MyGraph(V : MYVERTEX with type edge = E.t)(E : EDGE with type vertex = V.t) = struct module V = V module E = E ... end The compiler found an error on "with type edge = E.t" : "Unbound type constructor E.t". I understood it, E has not been defined yet, but I want to do that any way : if I suppress "with type edge = E.t", the V.edge and E.t types are not the same (and some other functions inside Make_MyGraph won't work). I tried things like : module Make_MyGraph(VV : MYVERTEX)(EE : EDGE with type vertex = V.t) = struct module E = EE module V = VV with type edge = E.t (*ocamlc doesn't understand the with keyword here*) ... end or module Make_MyEdge(E : EDGE)(V : MYVERTEX with type edge = E.t) = struct include V end module Make_MyGraph(VV : MYVERTEX)(EE : EDGE with type vertex = VV.t) = struct module E = EE module V = Make_MyEdge(E)(VV) (*ocamlc doesn't accepte VV, Modules do not match: sig type t = VV.t type label = VV.label type edge = VV.edge end is not included in sig type t type label type edge = E.t end *) ... end -- Damien Bobillot Test.ml file : =================== module type VERTEX = sig type t type label end module type EDGE = sig type t type label type vertex end module type MYVERTEX = sig include VERTEX type edge end module MyVertex = struct type edge type t = { label : int; out_edges : edge list } end module MyEdge = struct type vertex type t = { label : int; src : vertex; dst : vertex } end module Make_MyGraph(V : MYVERTEX with type edge = E.t)(E : EDGE with type vertex = V.t) = struct module V = V module E = E end (*module Make_MyGraph(VV : MYVERTEX)(EE : EDGE with type vertex = V.t) = struct module E = EE module V = VV with type edge = E.t end*) (*module Make_MyEdge(E : EDGE)(V : MYVERTEX with type edge = E.t) = struct include V end module Make_MyGraph(VV : MYVERTEX)(EE : EDGE with type vertex = VV.t) = struct module E = EE module V = Make_MyEdge(E)(VV) end*) =========== --Apple-Mail-2-944324183 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 <HTML><BODY style=3D"word-wrap: break-word; -khtml-nbsp-mode: space; = -khtml-line-break: after-white-space; ">Hello,<DIV><BR = class=3D"khtml-block-placeholder"></DIV><DIV>I'm defining a graph = structure compatible with the ocamlgraph library.</DIV><DIV><BR = class=3D"khtml-block-placeholder"></DIV><DIV>I want to be able to access = all=A0neighbors and edge to=A0neighbors of a vertex in 0(1), so I think = I need to store the outgoing edge list of each vertex in the vertex = structure. I also need to be able to access the source and destination = of an edge in 0(1), so I store these vertex in the edge = structure.</DIV><DIV><BR = class=3D"khtml-block-placeholder"></DIV><DIV>A=A0standard Caml will be = :</DIV><DIV><BR class=3D"khtml-block-placeholder"></DIV><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; "><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">type</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> = vertex =3D {</SPAN></FONT></DIV><DIV style=3D"text-indent: = -48px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 48px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">label : int;</SPAN></FONT></DIV><DIV style=3D"text-indent: = -48px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 48px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">out_edges : edge list;</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">...</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">} = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">and</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> edge =3D = {</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: 0px; = margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">label : int;</SPAN></FONT></DIV><DIV style=3D"text-indent: = -48px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 48px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">src : vertex;</SPAN></FONT></DIV><DIV style=3D"text-indent: = -48px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 48px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">dst : vertex;</SPAN></FONT></DIV><DIV style=3D"text-indent: = -48px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 48px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">...</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">}</SPAN></FONT></DIV><DIV style=3D"text-indent: -24px;"><BR = class=3D"khtml-block-placeholder"></DIV><DIV>However, in ocamlgraph, the = vertex and edge type must be defined by modules of signatures (and I = cannot modify it) :</DIV><DIV><BR = class=3D"khtml-block-placeholder"></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> VERTEX =3D = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">sig</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">type</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> = t</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: 0px; = margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = label</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">=A0</SPAN></FONT></DIV><DIV style=3D"text-indent: = -48px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 48px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">val</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> create : label = -> t</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">val</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> label : t -> = label</SPAN></FONT></DIV><DIV style=3D"text-indent: -24px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 24px; "><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">end</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> EDGE =3D = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">sig</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">type</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> = t</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: 0px; = margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = label</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = vertex</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">val</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> create : vertex = -> label -> vertex -> t</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">val</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> = label : t -> label</SPAN></FONT></DIV><DIV style=3D"text-indent: = -48px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 48px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">val</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> src : t -> = vertex</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">val</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> dst : t -> = vertex</SPAN></FONT></DIV><DIV style=3D"text-indent: -24px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 24px; "><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">end</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> GRAPH =3D = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">sig</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> V : VERTEX</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> E : EDGE</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">...</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">end</SPAN></FONT></DIV><DIV = style=3D"text-indent: -24px;"><BR = class=3D"khtml-block-placeholder"></DIV><DIV>Then the graph structure = is=A0generally created with a functor like :</DIV><DIV><BR = class=3D"khtml-block-placeholder"></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> Make_Graph(V : = VERTEX)(E : EDGE </SPAN></FONT><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">with</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> vertex =3D V.t) =3D= </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">struct</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> V =3D V</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> E =3D E</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">...</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">end</SPAN></FONT></DIV><DIV = style=3D"text-indent: -24px;"><BR = class=3D"khtml-block-placeholder"></DIV><DIV>It works fine, but it = doesn't respond to my problem : I want that V use a type from E and at = the same time E use a type of V.=A0So I write the following code = :</DIV><DIV><BR class=3D"khtml-block-placeholder"></DIV><DIV><DIV><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; "><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> </SPAN></FONT><FONT class=3D"Apple-style-span"= color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">type</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> = MYVERTEX =3D </SPAN></FONT><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">sig</SPAN></FONT></DIV><DIV style=3D"text-indent: = -48px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 48px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">include</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = VERTEX</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = edge</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">val</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> out_edges : t = -> edge list</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0</SPAN></FONT></DIV><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; "><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">end</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; font: normal normal normal 10px/normal Monaco; = min-height: 14px; "><BR></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> MyVertex =3D = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">struct</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">type</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> = edge</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> t =3D { label : = int; out_edges : edge list }</SPAN></FONT></DIV><DIV style=3D"text-indent:= -48px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 48px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">let</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> out_edges v =3D = v.out_edges</SPAN></FONT></DIV><DIV style=3D"text-indent: = -48px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 48px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">...</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">end</SPAN></FONT></DIV><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; font: normal normal normal = 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; "><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> MyEdge =3D </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">struct</SPAN></FONT></DIV><DIV style=3D"text-indent: = -48px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 48px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = vertex</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> t =3D { label : = int; src : vertex; dst : vertex }</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">...</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">end</SPAN></FONT></DIV><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; font: normal normal normal = 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; "><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> Make_MyGraph(V : MYVERTEX = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">with</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> edge =3D E.t)(E : = EDGE </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">with</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> vertex =3D V.t) =3D= </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">struct</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> V =3D V</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> E =3D E</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">...</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">end</SPAN></FONT></DIV><P style=3D"text-indent:= -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 0px; min-height: 14px; "><BR></P><P style=3D"margin: 0.0px = 0.0px 0.0px 0.0px; min-height: 14.0px">The compiler found an error on = "with type edge =3D E.t" : "Unbound type constructor E.t". I understood = it, E has not been defined yet, but I want to do that any way : if I = suppress "with type edge =3D E.t", the V.edge and E.t types are not the = same (and some other functions inside=A0Make_MyGraph won't work).</P><P = style=3D"margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><BR = class=3D"khtml-block-placeholder"></P><P style=3D"margin: 0.0px 0.0px = 0.0px 0.0px; min-height: 14.0px">I tried things like :</P><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; "><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> Make_MyGraph(VV : MYVERTEX)(EE : EDGE = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">with</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> vertex =3D V.t) =3D= </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">struct</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> E =3D EE</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> V =3D VV </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">with</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> edge =3D E.t = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#236E25" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">(*ocamlc doesn't understand the with keyword = here*)</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">...</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">end</SPAN></FONT></DIV><P style=3D"text-indent:= -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 0px; min-height: 14px; "><BR = class=3D"khtml-block-placeholder"></P><P style=3D"margin: 0.0px 0.0px = 0.0px 0.0px; min-height: 14.0px">or=A0</P><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> Make_MyEdge(E : = EDGE)(V : MYVERTEX </SPAN></FONT><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">with</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> edge =3D E.t) =3D = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">struct</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">include</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> V</SPAN></FONT></DIV><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; "><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">end</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> Make_MyGraph(VV : = MYVERTEX)(EE : EDGE </SPAN></FONT><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">with</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> vertex =3D VV.t) = =3D </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">struct</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> E =3D EE</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> V =3D Make_MyEdge(E)(VV) </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#236E25" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">(*ocamlc doesn't accepte VV,</SPAN></FONT></DIV><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; "><FONT class=3D"Apple-style-span" = color=3D"#236E25" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">Modules do not = match:</SPAN></FONT></DIV><DIV style=3D"text-indent: -36px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 36px; "><FONT = class=3D"Apple-style-span" color=3D"#236E25" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#236E25" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">sig type t =3D VV.t type label =3D VV.label = type edge =3D VV.edge end</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#236E25" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">is not included in</SPAN></FONT></DIV><DIV = style=3D"text-indent: -36px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 36px; "><FONT class=3D"Apple-style-span" = color=3D"#236E25" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#236E25" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">sig type t type label type edge =3D E.t = end</SPAN></FONT></DIV><DIV style=3D"text-indent: -24px;margin-top: 0px; = margin-right: 0px; margin-bottom: 0px; margin-left: 24px; "><FONT = class=3D"Apple-style-span" color=3D"#236E25" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">*)</SPAN></FONT></DIV><DIV style=3D"text-indent: = -48px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 48px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">...</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">end</SPAN></FONT></DIV><P style=3D"text-indent:= -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 0px; min-height: 14px; "><BR = class=3D"khtml-block-placeholder"></P> <P style=3D"margin: 0.0px 0.0px = 0.0px 0.0px"><FONT face=3D"Helvetica" size=3D"3" style=3D"font: 12.0px = Helvetica">--<SPAN class=3D"Apple-converted-space">=A0</SPAN></FONT></P> = <P style=3D"margin: 0.0px 0.0px 0.0px 0.0px"><FONT face=3D"Helvetica" = size=3D"3" style=3D"font: 12.0px Helvetica">Damien Bobillot</FONT></P><P = style=3D"margin: 0.0px 0.0px 0.0px 0.0px"><BR = class=3D"khtml-block-placeholder"></P><P style=3D"margin: 0.0px 0.0px = 0.0px 0.0px">Test.ml file :</P><P style=3D"margin: 0.0px 0.0px 0.0px = 0.0px">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</P><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; "><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> </SPAN></FONT><FONT class=3D"Apple-style-span"= color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">type</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> = VERTEX =3D </SPAN></FONT><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">sig</SPAN></FONT></DIV><DIV style=3D"text-indent: = -48px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 48px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = t</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: 0px; = margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = label</SPAN></FONT></DIV><DIV style=3D"text-indent: -24px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 24px; "><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">end</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> EDGE =3D = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">sig</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">type</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> = t</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: 0px; = margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = label</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = vertex</SPAN></FONT></DIV><DIV style=3D"text-indent: -24px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 24px; "><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">end</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> MYVERTEX =3D = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">sig</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">include</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> VERTEX</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">type</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> = edge</SPAN></FONT></DIV><DIV style=3D"text-indent: -24px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 24px; "><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">end</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; font: normal normal normal 10px/normal Monaco; = min-height: 14px; "><BR></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> MyVertex =3D = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">struct</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">type</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> = edge</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> t =3D { label : = int; out_edges : edge list }</SPAN></FONT></DIV><DIV style=3D"text-indent:= -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">end</SPAN></FONT></DIV><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; "><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> MyEdge =3D </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">struct</SPAN></FONT></DIV><DIV style=3D"text-indent: = -48px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 48px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0= =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = vertex</SPAN></FONT></DIV><DIV style=3D"text-indent: -48px;margin-top: = 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 48px; "><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> t =3D { label : = int; src : vertex; dst : vertex }</SPAN></FONT></DIV><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; "><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">end</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> Make_MyGraph(V : = MYVERTEX </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">with</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> edge =3D E.t)(E : = EDGE </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">with</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">type</SPAN></FONT><FONT = class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;"> vertex =3D V.t) =3D= </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">struct</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> V =3D V</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">=A0 =A0 </SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">module</SPAN></FONT><FONT class=3D"Apple-style-span" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;"> E =3D E</SPAN></FONT></DIV><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; "><FONT class=3D"Apple-style-span" = color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">end</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; font: normal normal normal 10px/normal Monaco; = min-height: 14px; "><BR></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#236E25" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">(*module Make_MyGraph(VV : MYVERTEX)(EE : = EDGE with type vertex =3D V.t) =3D struct</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = color=3D"#236E25" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#236E25" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module E =3D EE</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = color=3D"#236E25" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#236E25" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module V =3D VV with type edge =3D = E.t</SPAN></FONT></DIV><DIV style=3D"text-indent: -24px;margin-top: 0px; = margin-right: 0px; margin-bottom: 0px; margin-left: 24px; "><FONT = class=3D"Apple-style-span" color=3D"#236E25" face=3D"Monaco" = size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 10px;">end*)</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; font: normal normal normal 10px/normal Monaco; = min-height: 14px; "><BR></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#236E25" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">(*module Make_MyEdge(E : EDGE)(V : MYVERTEX = with type edge =3D E.t) =3D struct</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = color=3D"#236E25" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#236E25" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">include V</SPAN></FONT></DIV><DIV = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 24px; "><FONT class=3D"Apple-style-span" = color=3D"#236E25" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: = 10px;">end</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#236E25" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module Make_MyGraph(VV : MYVERTEX)(EE : EDGE = with type vertex =3D VV.t) =3D struct</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = color=3D"#236E25" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#236E25" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module E =3D EE</SPAN></FONT></DIV><DIV = style=3D"text-indent: -48px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 48px; "><FONT class=3D"Apple-style-span" = color=3D"#236E25" face=3D"Monaco" size=3D"2"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 = </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#236E25" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">module V =3D = Make_MyEdge(E)(VV)</SPAN></FONT></DIV><DIV style=3D"text-indent: = -24px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 24px; "><FONT class=3D"Apple-style-span" color=3D"#236E25" = face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 10px;">end*)</SPAN></FONT></DIV><P = style=3D"text-indent: -24px;margin-top: 0px; margin-right: 0px; = margin-bottom: 0px; margin-left: 0px; ">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<= /P> </DIV><BR></DIV></BODY></HTML>= --Apple-Mail-2-944324183-- --Apple-Mail-3-944324957 Content-Transfer-Encoding: base64 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Disposition: attachment; filename=smime.p7s MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGIjCCAtsw ggJEoAMCAQICAw54xzANBgkqhkiG9w0BAQQFADBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhh d3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVt YWlsIElzc3VpbmcgQ0EwHhcNMDUwNDEzMTc1MTAxWhcNMDYwNDEzMTc1MTAxWjBJMR8wHQYDVQQD ExZUaGF3dGUgRnJlZW1haWwgTWVtYmVyMSYwJAYJKoZIhvcNAQkBFhdkYW1pZW4uYm9iaWxsb3RA bTR4Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ1TOYBqwJ42s0Fzz56jY1p0 fplGyikFgoNEUKGnOpqt4vpeoqUppAnORt2yvdQJxfIkhsWkrD/diiPS7MTF73wcxlSJtqYzVzPK G/2WDm6dBinuWCIyWYFhtGedyxbap3kJW44H7cL7HUVVxZ0JhOIOTsjCoEzaeKnML7bctbIJeXEE lErfbDv2jA1PDG1ru5dx+Q+AmbexX92ygnntE6aX3QZLSbhrytg4yCRdV8cOyQ9eFruZBI42RJv3 nJXevjUOr4n+y/7bzijAJj4BFyUU+dllvj6bmk5brnUXheCSOD0Ci20dqGNC1MyJ43b6MoIrbW7j JwYIv12D6KuWoaUCAwEAAaM0MDIwIgYDVR0RBBswGYEXZGFtaWVuLmJvYmlsbG90QG00eC5vcmcw DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQQFAAOBgQB0u5b6wgwsbcyzDHJTzshlCn4gshxWtU/1 mH77gBCpsY8L554YV4/Tvm1PzmDzErm++drQf5HMy8sEFjmwLvNfBP0BqtkSqsdRFGR4wHzTjMhS EW5LgmlaccqBQzqQrANtzglgBVbtmBDAV92qHjQslwHK4FohCRRzGl4DLQmqBDCCAz8wggKooAMC AQICAQ0wDQYJKoZIhvcNAQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENh cGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNV BAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJz b25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3Rl LmNvbTAeFw0wMzA3MTcwMDAwMDBaFw0xMzA3MTYyMzU5NTlaMGIxCzAJBgNVBAYTAlpBMSUwIwYD VQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29u YWwgRnJlZW1haWwgSXNzdWluZyBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV +065yplaHmjAdQRwnd/p/6Me7L3N9VvyGna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqq P3FWy688Cwfn8R+RNiQqE88r1fOCdz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUPSAR/p7bRPGEE QB5kGXJgt/sCAwEAAaOBlDCBkTASBgNVHRMBAf8ECDAGAQH/AgEAMEMGA1UdHwQ8MDowOKA2oDSG Mmh0dHA6Ly9jcmwudGhhd3RlLmNvbS9UaGF3dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1Ud DwQEAwIBBjApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZI hvcNAQEFBQADgYEASIzRUIPqCy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYfqi2fNi/A9BxQIJNw PP2t4WFiw9k6GX6EsZkbAMUaC4J0niVQlGLH2ydxVyWN3amcOY6MIE9lX5Xa9/eH1sYITq726jTl EBpbNU1341YheILcIRk13iSx0x1G/11fZU8xggLnMIIC4wIBATBpMGIxCzAJBgNVBAYTAlpBMSUw IwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVy c29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIDDnjHMAkGBSsOAwIaBQCgggFTMBgGCSqGSIb3DQEJ AzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA1MDYxNTEyMTkyMlowIwYJKoZIhvcNAQkE MRYEFAKgwkCW1up4y16I3Ne55Lsq/3VqMHgGCSsGAQQBgjcQBDFrMGkwYjELMAkGA1UEBhMCWkEx JTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQ ZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAgMOeMcwegYLKoZIhvcNAQkQAgsxa6BpMGIxCzAJ BgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQD EyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIDDnjHMA0GCSqGSIb3DQEBAQUA BIIBAEZr21taGXdpgU2d++77gj/fUUIKLgdjNoIrGhmn524wleGTEkTD410/wdW+sDvUY+GCmRjQ LMjySFTujYuVcc+MGM4ZhQcIKnsG58yEmjOm4+m4LRd6Xtgxa+IAqtTrIiDbfTOKG54IN+YlENYY HS6K/IUDl1Kv77P93q5d8GGnGhmBRMP72EIv7cmoU2wR6rtDUhe2/ChIeOk8tjtUEYQsAlz98d75 Vpm36oDsSfy8gbqxRrii5tBa++9Sj2GA3Cq+2IU53RSqY37V1kPFpKDEq9j8bfl97BzYNBcM7Fnr JTFfoTBUw+lqjZmCMhllzOnmJXn3+PyFjDQs4lMsnoYAAAAAAAA= --Apple-Mail-3-944324957--