<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Data.Graph.Inductive.Graph</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_Data-Graph-Inductive-Graph.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >fgl-5.4.2.3: Martin Erwig's Functional Graph Library</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Data.Graph.Inductive.Graph</FONT ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >General Type Defintions </A ></DT ><DD ><DL ><DT ><A HREF="#2" >Node and Edge Types </A ></DT ><DT ><A HREF="#3" >Types Supporting Inductive Graph View </A ></DT ></DL ></DD ><DT ><A HREF="#4" >Graph Type Classes </A ></DT ><DT ><A HREF="#5" >Operations </A ></DT ><DD ><DL ><DT ><A HREF="#6" >Graph Folds and Maps </A ></DT ><DT ><A HREF="#7" >Graph Projection </A ></DT ><DT ><A HREF="#8" >Graph Construction and Destruction </A ></DT ><DT ><A HREF="#9" >Graph Inspection </A ></DT ><DT ><A HREF="#10" >Context Inspection </A ></DT ></DL ></DD ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >Static and Dynamic Inductive Graphs </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ANode" >Node</A > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ALNode" >LNode</A > a = (<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AUNode" >UNode</A > = <A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AEdge" >Edge</A > = (<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ALEdge" >LEdge</A > b = (<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, b)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AUEdge" >UEdge</A > = <A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AAdj" >Adj</A > b = [(b, <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >)]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AContext" >Context</A > a b = (<A HREF="Data-Graph-Inductive-Graph.html#t%3AAdj" >Adj</A > b, <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, a, <A HREF="Data-Graph-Inductive-Graph.html#t%3AAdj" >Adj</A > b)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AMContext" >MContext</A > a b = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ADecomp" >Decomp</A > g a b = (<A HREF="Data-Graph-Inductive-Graph.html#t%3AMContext" >MContext</A > a b, g a b)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AGDecomp" >GDecomp</A > g a b = (<A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b, g a b)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AUContext" >UContext</A > = ([<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >], <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >])</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AUDecomp" >UDecomp</A > g = (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Data-Graph-Inductive-Graph.html#t%3AUContext" >UContext</A >, g)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3APath" >Path</A > = [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >newtype</SPAN > <A HREF="#t%3ALPath" >LPath</A > a = <A HREF="#v%3ALP" >LP</A > [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A > a]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AUPath" >UPath</A > = [<A HREF="Data-Graph-Inductive-Graph.html#t%3AUNode" >UNode</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="#t%3AGraph" >Graph</A > gr <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3Aempty" >empty</A > :: gr a b</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisEmpty" >isEmpty</A > :: gr a b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Amatch" >match</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ADecomp" >Decomp</A > gr a b</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkGraph" >mkGraph</A > :: [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A > a] -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b] -> gr a b</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AlabNodes" >labNodes</A > :: gr a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A > a]</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmatchAny" >matchAny</A > :: gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3AGDecomp" >GDecomp</A > gr a b</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnoNodes" >noNodes</A > :: gr a b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnodeRange" >nodeRange</A > :: gr a b -> (<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AlabEdges" >labEdges</A > :: gr a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b]</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => <A HREF="#t%3ADynGraph" >DynGraph</A > gr <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3A%26" >(&)</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> gr a b -> gr a b</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aufold" >ufold</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => (<A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> c -> c) -> c -> gr a b -> c</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Agmap" >gmap</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => (<A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > c d) -> gr a b -> gr c d</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Anmap" >nmap</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => (a -> c) -> gr a b -> gr c b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aemap" >emap</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => (b -> c) -> gr a b -> gr a c</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Anodes" >nodes</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aedges" >edges</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3AEdge" >Edge</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnewNodes" >newNodes</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> gr a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Agelem" >gelem</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> gr a b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinsNode" >insNode</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => <A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A > a -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinsEdge" >insEdge</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => <A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdelNode" >delNode</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdelEdge" >delEdge</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => <A HREF="Data-Graph-Inductive-Graph.html#t%3AEdge" >Edge</A > -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdelLEdge" >delLEdge</A > :: (<A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > b) => <A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinsNodes" >insNodes</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A > a] -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinsEdges" >insEdges</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b] -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdelNodes" >delNodes</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >] -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdelEdges" >delEdges</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => [<A HREF="Data-Graph-Inductive-Graph.html#t%3AEdge" >Edge</A >] -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AbuildGr" >buildGr</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => [<A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b] -> gr a b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkUGraph" >mkUGraph</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >] -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3AEdge" >Edge</A >] -> gr <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Acontext" >context</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Alab" >lab</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aneighbors" >neighbors</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Asuc" >suc</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Apre" >pre</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Alsuc" >lsuc</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> [(<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, b)]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Alpre" >lpre</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> [(<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, b)]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aout" >out</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ainn" >inn</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aoutdeg" >outdeg</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aindeg" >indeg</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Adeg" >deg</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aequal" >equal</A > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > b, <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr) => gr a b -> gr a b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Anode%27" >node'</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Alab%27" >lab'</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AlabNode%27" >labNode'</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aneighbors%27" >neighbors'</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Asuc%27" >suc'</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Apre%27" >pre'</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Alpre%27" >lpre'</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> [(<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, b)]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Alsuc%27" >lsuc'</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> [(<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, b)]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aout%27" >out'</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ainn%27" >inn'</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aoutdeg%27" >outdeg'</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aindeg%27" >indeg'</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Adeg%27" >deg'</A > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" ><A NAME="1" >General Type Defintions </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="2" ><A NAME="2" >Node and Edge Types </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:Node" ><A NAME="t%3ANode" ></A ></A ><B >Node</B > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >Unlabeled node </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:LNode" ><A NAME="t%3ALNode" ></A ></A ><B >LNode</B > a = (<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, a)</TD ></TR ><TR ><TD CLASS="doc" >Labeled node </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:UNode" ><A NAME="t%3AUNode" ></A ></A ><B >UNode</B > = <A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" >Quasi-unlabeled node </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:Edge" ><A NAME="t%3AEdge" ></A ></A ><B >Edge</B > = (<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >)</TD ></TR ><TR ><TD CLASS="doc" >Unlabeled edge </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:LEdge" ><A NAME="t%3ALEdge" ></A ></A ><B >LEdge</B > b = (<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, b)</TD ></TR ><TR ><TD CLASS="doc" >Labeled edge </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:UEdge" ><A NAME="t%3AUEdge" ></A ></A ><B >UEdge</B > = <A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" >Quasi-unlabeled edge </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="3" ><A NAME="3" >Types Supporting Inductive Graph View </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:Adj" ><A NAME="t%3AAdj" ></A ></A ><B >Adj</B > b = [(b, <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >)]</TD ></TR ><TR ><TD CLASS="doc" >Labeled links to or from a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:Context" ><A NAME="t%3AContext" ></A ></A ><B >Context</B > a b = (<A HREF="Data-Graph-Inductive-Graph.html#t%3AAdj" >Adj</A > b, <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, a, <A HREF="Data-Graph-Inductive-Graph.html#t%3AAdj" >Adj</A > b)</TD ></TR ><TR ><TD CLASS="doc" >Links to the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >, the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT > itself, a label, links from the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:MContext" ><A NAME="t%3AMContext" ></A ></A ><B >MContext</B > a b = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:Decomp" ><A NAME="t%3ADecomp" ></A ></A ><B >Decomp</B > g a b = (<A HREF="Data-Graph-Inductive-Graph.html#t%3AMContext" >MContext</A > a b, g a b)</TD ></TR ><TR ><TD CLASS="doc" ><TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT > decomposition - the context removed from a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >, and the rest of the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:GDecomp" ><A NAME="t%3AGDecomp" ></A ></A ><B >GDecomp</B > g a b = (<A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b, g a b)</TD ></TR ><TR ><TD CLASS="doc" >The same as <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ADecomp" >Decomp</A ></TT >, only more sure of itself. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:UContext" ><A NAME="t%3AUContext" ></A ></A ><B >UContext</B > = ([<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >], <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >])</TD ></TR ><TR ><TD CLASS="doc" >Unlabeled context. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:UDecomp" ><A NAME="t%3AUDecomp" ></A ></A ><B >UDecomp</B > g = (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Data-Graph-Inductive-Graph.html#t%3AUContext" >UContext</A >, g)</TD ></TR ><TR ><TD CLASS="doc" >Unlabeled decomposition. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:Path" ><A NAME="t%3APath" ></A ></A ><B >Path</B > = [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="doc" >Unlabeled path </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >newtype</SPAN > <A NAME="t:LPath" ><A NAME="t%3ALPath" ></A ></A ><B >LPath</B > a </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Labeled path </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:LP" ><A NAME="v%3ALP" ></A ></A ><B >LP</B > [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A > a]</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:LPath')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:LPath" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > (<A HREF="Data-Graph-Inductive-Graph.html#t%3ALPath" >LPath</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > (<A HREF="Data-Graph-Inductive-Graph.html#t%3ALPath" >LPath</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > (<A HREF="Data-Graph-Inductive-Graph.html#t%3ALPath" >LPath</A > a)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:UPath" ><A NAME="t%3AUPath" ></A ></A ><B >UPath</B > = [<A HREF="Data-Graph-Inductive-Graph.html#t%3AUNode" >UNode</A >]</TD ></TR ><TR ><TD CLASS="doc" >Quasi-unlabeled path </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="4" ><A NAME="4" >Graph Type Classes </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" ><P >We define two graph classes: </P ><P >Graph: static, decomposable graphs. Static means that a graph itself cannot be changed </P ><P >DynGraph: dynamic, extensible graphs. Dynamic graphs inherit all operations from static graphs but also offer operations to extend and change graphs. </P ><P >Each class contains in addition to its essential operations those derived operations that might be overwritten by a more efficient implementation in an instance definition. </P ><P >Note that labNodes is essentially needed because the default definition for matchAny is based on it: we need some node from the graph to define matchAny in terms of match. Alternatively, we could have made matchAny essential and have labNodes defined in terms of ufold and matchAny. However, in general, labNodes seems to be (at least) as easy to define as matchAny. We have chosen labNodes instead of the function nodes since nodes can be easily derived from labNodes, but not vice versa. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A NAME="t:Graph" ><A NAME="t%3AGraph" ></A ></A ><B >Graph</B > gr <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Minimum implementation: <TT ><A HREF="Data-Graph-Inductive-Graph.html#v%3Aempty" >empty</A ></TT >, <TT ><A HREF="Data-Graph-Inductive-Graph.html#v%3AisEmpty" >isEmpty</A ></TT >, <TT ><A HREF="Data-Graph-Inductive-Graph.html#v%3Amatch" >match</A ></TT >, <TT ><A HREF="Data-Graph-Inductive-Graph.html#v%3AmkGraph" >mkGraph</A ></TT >, <TT ><A HREF="Data-Graph-Inductive-Graph.html#v%3AlabNodes" >labNodes</A ></TT > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" >Methods</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A NAME="v:empty" ><A NAME="v%3Aempty" ></A ></A ><B >empty</B > :: gr a b</TD ></TR ><TR ><TD CLASS="doc" >An empty <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:isEmpty" ><A NAME="v%3AisEmpty" ></A ></A ><B >isEmpty</B > :: gr a b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" >True if the given <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT > is empty. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:match" ><A NAME="v%3Amatch" ></A ></A ><B >match</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ADecomp" >Decomp</A > gr a b</TD ></TR ><TR ><TD CLASS="doc" >Decompose a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT > into the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AMContext" >MContext</A ></TT > found for the given node and the remaining <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkGraph" ><A NAME="v%3AmkGraph" ></A ></A ><B >mkGraph</B > :: [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A > a] -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b] -> gr a b</TD ></TR ><TR ><TD CLASS="doc" >Create a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT > from the list of <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A ></TT >s and <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A ></TT >s. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:labNodes" ><A NAME="v%3AlabNodes" ></A ></A ><B >labNodes</B > :: gr a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A > a]</TD ></TR ><TR ><TD CLASS="doc" >A list of all <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A ></TT >s in the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:matchAny" ><A NAME="v%3AmatchAny" ></A ></A ><B >matchAny</B > :: gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3AGDecomp" >GDecomp</A > gr a b</TD ></TR ><TR ><TD CLASS="doc" >Decompose a graph into the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT > for an arbitrarily-chosen <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT > and the remaining <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:noNodes" ><A NAME="v%3AnoNodes" ></A ></A ><B >noNodes</B > :: gr a b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >The number of <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >s in a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:nodeRange" ><A NAME="v%3AnodeRange" ></A ></A ><B >nodeRange</B > :: gr a b -> (<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >)</TD ></TR ><TR ><TD CLASS="doc" >The minimum and maximum <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT > in a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:labEdges" ><A NAME="v%3AlabEdges" ></A ></A ><B >labEdges</B > :: gr a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b]</TD ></TR ><TR ><TD CLASS="doc" >A list of all <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A ></TT >s in the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Graph')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Graph" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > <A HREF="Data-Graph-Inductive-PatriciaTree.html#t%3AGr" >Gr</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > <A HREF="Data-Graph-Inductive-Tree.html#t%3AGr" >Gr</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => <A NAME="t:DynGraph" ><A NAME="t%3ADynGraph" ></A ></A ><B >DynGraph</B > gr <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" >Methods</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A NAME="v:&" ><A NAME="v%3A%26" ></A ></A ><B >(&)</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="doc" >Merge the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT > into the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A ></TT >. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DynGraph')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:DynGraph" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > <A HREF="Data-Graph-Inductive-PatriciaTree.html#t%3AGr" >Gr</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > <A HREF="Data-Graph-Inductive-Tree.html#t%3AGr" >Gr</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="5" ><A NAME="5" >Operations </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="6" ><A NAME="6" >Graph Folds and Maps </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:ufold" ><A NAME="v%3Aufold" ></A ></A ><B >ufold</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => (<A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> c -> c) -> c -> gr a b -> c</TD ></TR ><TR ><TD CLASS="doc" >Fold a function over the graph. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:gmap" ><A NAME="v%3Agmap" ></A ></A ><B >gmap</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => (<A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > c d) -> gr a b -> gr c d</TD ></TR ><TR ><TD CLASS="doc" >Map a function over the graph. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:nmap" ><A NAME="v%3Anmap" ></A ></A ><B >nmap</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => (a -> c) -> gr a b -> gr c b</TD ></TR ><TR ><TD CLASS="doc" >Map a function over the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT > labels in a graph. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:emap" ><A NAME="v%3Aemap" ></A ></A ><B >emap</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => (b -> c) -> gr a b -> gr a c</TD ></TR ><TR ><TD CLASS="doc" >Map a function over the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AEdge" >Edge</A ></TT > labels in a graph. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="7" ><A NAME="7" >Graph Projection </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:nodes" ><A NAME="v%3Anodes" ></A ></A ><B >nodes</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="doc" >List all <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >s in the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:edges" ><A NAME="v%3Aedges" ></A ></A ><B >edges</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3AEdge" >Edge</A >]</TD ></TR ><TR ><TD CLASS="doc" >List all <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AEdge" >Edge</A ></TT >s in the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:newNodes" ><A NAME="v%3AnewNodes" ></A ></A ><B >newNodes</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> gr a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="doc" >List N available <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >s, i.e. <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >s that are not used in the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:gelem" ><A NAME="v%3Agelem" ></A ></A ><B >gelem</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> gr a b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#v%3ATrue" >True</A ></TT > if the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT > is present in the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="8" ><A NAME="8" >Graph Construction and Destruction </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:insNode" ><A NAME="v%3AinsNode" ></A ></A ><B >insNode</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => <A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A > a -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="doc" >Insert a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A ></TT > into the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:insEdge" ><A NAME="v%3AinsEdge" ></A ></A ><B >insEdge</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => <A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="doc" >Insert a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A ></TT > into the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:delNode" ><A NAME="v%3AdelNode" ></A ></A ><B >delNode</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="doc" >Remove a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT > from the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:delEdge" ><A NAME="v%3AdelEdge" ></A ></A ><B >delEdge</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => <A HREF="Data-Graph-Inductive-Graph.html#t%3AEdge" >Edge</A > -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="doc" >Remove an <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AEdge" >Edge</A ></TT > from the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:delLEdge" ><A NAME="v%3AdelLEdge" ></A ></A ><B >delLEdge</B > :: (<A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > b) => <A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="doc" >Remove an <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A ></TT > from the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:insNodes" ><A NAME="v%3AinsNodes" ></A ></A ><B >insNodes</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A > a] -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="doc" >Insert multiple <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A ></TT >s into the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:insEdges" ><A NAME="v%3AinsEdges" ></A ></A ><B >insEdges</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b] -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="doc" >Insert multiple <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A ></TT >s into the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:delNodes" ><A NAME="v%3AdelNodes" ></A ></A ><B >delNodes</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >] -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="doc" >Remove multiple <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >s from the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:delEdges" ><A NAME="v%3AdelEdges" ></A ></A ><B >delEdges</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => [<A HREF="Data-Graph-Inductive-Graph.html#t%3AEdge" >Edge</A >] -> gr a b -> gr a b</TD ></TR ><TR ><TD CLASS="doc" >Remove multiple <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AEdge" >Edge</A ></TT >s from the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:buildGr" ><A NAME="v%3AbuildGr" ></A ></A ><B >buildGr</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3ADynGraph" >DynGraph</A > gr => [<A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b] -> gr a b</TD ></TR ><TR ><TD CLASS="doc" >Build a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT > from a list of <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT >s. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkUGraph" ><A NAME="v%3AmkUGraph" ></A ></A ><B >mkUGraph</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >] -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3AEdge" >Edge</A >] -> gr <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" >Build a quasi-unlabeled <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="9" ><A NAME="9" >Graph Inspection </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:context" ><A NAME="v%3Acontext" ></A ></A ><B >context</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b</TD ></TR ><TR ><TD CLASS="doc" >Find the context for the given <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >. Causes an error if the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT > is not present in the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:lab" ><A NAME="v%3Alab" ></A ></A ><B >lab</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > a</TD ></TR ><TR ><TD CLASS="doc" >Find the label for a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:neighbors" ><A NAME="v%3Aneighbors" ></A ></A ><B >neighbors</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="doc" >Find the neighbors for a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:suc" ><A NAME="v%3Asuc" ></A ></A ><B >suc</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="doc" >Find all <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >s that have a link from the given <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:pre" ><A NAME="v%3Apre" ></A ></A ><B >pre</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="doc" >Find all <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >s that link to to the given <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:lsuc" ><A NAME="v%3Alsuc" ></A ></A ><B >lsuc</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> [(<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, b)]</TD ></TR ><TR ><TD CLASS="doc" >Find all <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >s that are linked from the given <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT > and the label of each link. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:lpre" ><A NAME="v%3Alpre" ></A ></A ><B >lpre</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> [(<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, b)]</TD ></TR ><TR ><TD CLASS="doc" >Find all <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >s that link to the given <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT > and the label of each link. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:out" ><A NAME="v%3Aout" ></A ></A ><B >out</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b]</TD ></TR ><TR ><TD CLASS="doc" >Find all outward-bound <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A ></TT >s for the given <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:inn" ><A NAME="v%3Ainn" ></A ></A ><B >inn</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b]</TD ></TR ><TR ><TD CLASS="doc" >Find all inward-bound <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A ></TT >s for the given <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:outdeg" ><A NAME="v%3Aoutdeg" ></A ></A ><B >outdeg</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >The outward-bound degree of the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:indeg" ><A NAME="v%3Aindeg" ></A ></A ><B >indeg</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >The inward-bound degree of the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:deg" ><A NAME="v%3Adeg" ></A ></A ><B >deg</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr => gr a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >The degree of the <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:equal" ><A NAME="v%3Aequal" ></A ></A ><B >equal</B > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > b, <A HREF="Data-Graph-Inductive-Graph.html#t%3AGraph" >Graph</A > gr) => gr a b -> gr a b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="10" ><A NAME="10" >Context Inspection </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:node'" ><A NAME="v%3Anode%27" ></A ></A ><B >node'</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT > in a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:lab'" ><A NAME="v%3Alab%27" ></A ></A ><B >lab'</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> a</TD ></TR ><TR ><TD CLASS="doc" >The label in a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:labNode'" ><A NAME="v%3AlabNode%27" ></A ></A ><B >labNode'</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> <A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A > a</TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ALNode" >LNode</A ></TT > from a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:neighbors'" ><A NAME="v%3Aneighbors%27" ></A ></A ><B >neighbors'</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="doc" >All <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >s linked to or from in a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:suc'" ><A NAME="v%3Asuc%27" ></A ></A ><B >suc'</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="doc" >All <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >s linked to in a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:pre'" ><A NAME="v%3Apre%27" ></A ></A ><B >pre'</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >]</TD ></TR ><TR ><TD CLASS="doc" >All <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >s linked from in a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:lpre'" ><A NAME="v%3Alpre%27" ></A ></A ><B >lpre'</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> [(<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, b)]</TD ></TR ><TR ><TD CLASS="doc" >All <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >s linked from in a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT >, and the label of the links. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:lsuc'" ><A NAME="v%3Alsuc%27" ></A ></A ><B >lsuc'</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> [(<A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A >, b)]</TD ></TR ><TR ><TD CLASS="doc" >All <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ANode" >Node</A ></TT >s linked from in a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT >, and the label of the links. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:out'" ><A NAME="v%3Aout%27" ></A ></A ><B >out'</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b]</TD ></TR ><TR ><TD CLASS="doc" >All outward-directed <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A ></TT >s in a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:inn'" ><A NAME="v%3Ainn%27" ></A ></A ><B >inn'</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> [<A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A > b]</TD ></TR ><TR ><TD CLASS="doc" >All inward-directed <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3ALEdge" >LEdge</A ></TT >s in a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:outdeg'" ><A NAME="v%3Aoutdeg%27" ></A ></A ><B >outdeg'</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >The outward degree of a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:indeg'" ><A NAME="v%3Aindeg%27" ></A ></A ><B >indeg'</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >The inward degree of a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:deg'" ><A NAME="v%3Adeg%27" ></A ></A ><B >deg'</B > :: <A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A > a b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="doc" >The degree of a <TT ><A HREF="Data-Graph-Inductive-Graph.html#t%3AContext" >Context</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.6.1</TD ></TR ></TABLE ></BODY ></HTML >