<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Reins" rel="Chapter" href="Reins.html"><title>Reins.Dug</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="constructor">Id</span> : <span class="constructor">Types</span>.<span class="constructor">Integral</span><br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b, <span class="keywordsign">'</span>c) kind = <span class="constructor">Generator</span> <span class="keyword">of</span> <span class="keywordsign">'</span>a <span class="keywordsign">|</span> <span class="constructor">Mutator</span> <span class="keyword">of</span> <span class="keywordsign">'</span>b <span class="keywordsign">|</span> <span class="constructor">Observer</span> <span class="keyword">of</span> <span class="keywordsign">'</span>c<br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b, <span class="keywordsign">'</span>c) edge = {<br> target : <span class="constructor">Id</span>.t;<br> op : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b, <span class="keywordsign">'</span>c) <span class="constructor">Reins</span>.<span class="constructor">Dug</span>.kind;<br> pos : int;<br> }<br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b, <span class="keywordsign">'</span>c) t = {<br> <span class="keyword">mutable</span> current_id : <span class="constructor">Id</span>.t;<br> nodes : (<span class="constructor">Id</span>.t, (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b, <span class="keywordsign">'</span>c) <span class="constructor">Reins</span>.<span class="constructor">Dug</span>.kind) <span class="constructor">Hashtbl</span>.t;<br> edges : (<span class="constructor">Id</span>.t, (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b, <span class="keywordsign">'</span>c) <span class="constructor">Reins</span>.<span class="constructor">Dug</span>.edge) <span class="constructor">Hashtbl</span>.t;<br> }<br> <span class="keyword">val</span> create : unit <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b, <span class="keywordsign">'</span>c) <span class="constructor">Reins</span>.<span class="constructor">Dug</span>.t<br> <span class="keyword">val</span> clear : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b, <span class="keywordsign">'</span>c) <span class="constructor">Reins</span>.<span class="constructor">Dug</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> size : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b, <span class="keywordsign">'</span>c) <span class="constructor">Reins</span>.<span class="constructor">Dug</span>.t <span class="keywordsign">-></span> <span class="constructor">Id</span>.t<br> <span class="keyword">val</span> fresh_id : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b, <span class="keywordsign">'</span>c) <span class="constructor">Reins</span>.<span class="constructor">Dug</span>.t <span class="keywordsign">-></span> <span class="constructor">Id</span>.t<br> <span class="keyword">val</span> is_mutator : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b, <span class="keywordsign">'</span>c) <span class="constructor">Reins</span>.<span class="constructor">Dug</span>.kind <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_generator : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b, <span class="keywordsign">'</span>c) <span class="constructor">Reins</span>.<span class="constructor">Dug</span>.kind <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_observer : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b, <span class="keywordsign">'</span>c) <span class="constructor">Reins</span>.<span class="constructor">Dug</span>.kind <span class="keywordsign">-></span> bool<br> <span class="keyword">end</span></code></body></html>