<!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 >NameSet</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_NameSet.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" >ghc-6.12.3: The GHC API</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" >NameSet</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" >Names set type </A ></DT ><DD ><DL ><DT ><A HREF="#2" >Manipulating these sets </A ></DT ></DL ></DD ><DT ><A HREF="#3" >Free variables </A ></DT ><DD ><DL ><DT ><A HREF="#4" >Manipulating sets of free variables </A ></DT ></DL ></DD ><DT ><A HREF="#5" >Defs and uses </A ></DT ><DD ><DL ><DT ><A HREF="#6" >Manipulating defs and uses </A ></DT ></DL ></DD ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></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%3ANameSet" >NameSet</A > = <A HREF="UniqSet.html#t%3AUniqSet" >UniqSet</A > <A HREF="Name.html#t%3AName" >Name</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AemptyNameSet" >emptyNameSet</A > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AunitNameSet" >unitNameSet</A > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkNameSet" >mkNameSet</A > :: [<A HREF="Name.html#t%3AName" >Name</A >] -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AunionNameSets" >unionNameSets</A > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AunionManyNameSets" >unionManyNameSets</A > :: [<A HREF="NameSet.html#t%3ANameSet" >NameSet</A >] -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AminusNameSet" >minusNameSet</A > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AelemNameSet" >elemNameSet</A > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="../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%3AnameSetToList" >nameSetToList</A > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> [<A HREF="Name.html#t%3AName" >Name</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AaddOneToNameSet" >addOneToNameSet</A > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AaddListToNameSet" >addListToNameSet</A > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> [<A HREF="Name.html#t%3AName" >Name</A >] -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdelFromNameSet" >delFromNameSet</A > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdelListFromNameSet" >delListFromNameSet</A > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> [<A HREF="Name.html#t%3AName" >Name</A >] -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisEmptyNameSet" >isEmptyNameSet</A > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="../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%3AfoldNameSet" >foldNameSet</A > :: (<A HREF="Name.html#t%3AName" >Name</A > -> b -> b) -> b -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfilterNameSet" >filterNameSet</A > :: (<A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AintersectsNameSet" >intersectsNameSet</A > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="../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%3AintersectNameSet" >intersectNameSet</A > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AFreeVars" >FreeVars</A > = <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisEmptyFVs" >isEmptyFVs</A > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="../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%3AemptyFVs" >emptyFVs</A > :: <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AplusFVs" >plusFVs</A > :: [<A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A >] -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AplusFV" >plusFV</A > :: <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A > -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A > -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkFVs" >mkFVs</A > :: [<A HREF="Name.html#t%3AName" >Name</A >] -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AaddOneFV" >addOneFV</A > :: <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A > -> <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AunitFV" >unitFV</A > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdelFV" >delFV</A > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A > -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdelFVs" >delFVs</A > :: [<A HREF="Name.html#t%3AName" >Name</A >] -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A > -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ADefs" >Defs</A > = <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AUses" >Uses</A > = <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ADefUse" >DefUse</A > = (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="NameSet.html#t%3ADefs" >Defs</A >, <A HREF="NameSet.html#t%3AUses" >Uses</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ADefUses" >DefUses</A > = [<A HREF="NameSet.html#t%3ADefUse" >DefUse</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AemptyDUs" >emptyDUs</A > :: <A HREF="NameSet.html#t%3ADefUses" >DefUses</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AusesOnly" >usesOnly</A > :: <A HREF="NameSet.html#t%3AUses" >Uses</A > -> <A HREF="NameSet.html#t%3ADefUses" >DefUses</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkDUs" >mkDUs</A > :: [(<A HREF="NameSet.html#t%3ADefs" >Defs</A >, <A HREF="NameSet.html#t%3AUses" >Uses</A >)] -> <A HREF="NameSet.html#t%3ADefUses" >DefUses</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AplusDU" >plusDU</A > :: <A HREF="NameSet.html#t%3ADefUses" >DefUses</A > -> <A HREF="NameSet.html#t%3ADefUses" >DefUses</A > -> <A HREF="NameSet.html#t%3ADefUses" >DefUses</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfindUses" >findUses</A > :: <A HREF="NameSet.html#t%3ADefUses" >DefUses</A > -> <A HREF="NameSet.html#t%3AUses" >Uses</A > -> <A HREF="NameSet.html#t%3AUses" >Uses</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AduDefs" >duDefs</A > :: <A HREF="NameSet.html#t%3ADefUses" >DefUses</A > -> <A HREF="NameSet.html#t%3ADefs" >Defs</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AduUses" >duUses</A > :: <A HREF="NameSet.html#t%3ADefUses" >DefUses</A > -> <A HREF="NameSet.html#t%3AUses" >Uses</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AallUses" >allUses</A > :: <A HREF="NameSet.html#t%3ADefUses" >DefUses</A > -> <A HREF="NameSet.html#t%3AUses" >Uses</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" >Names set type </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:NameSet" ><A NAME="t%3ANameSet" ></A ></A ><B >NameSet</B > = <A HREF="UniqSet.html#t%3AUniqSet" >UniqSet</A > <A HREF="Name.html#t%3AName" >Name</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="2" ><A NAME="2" >Manipulating these sets </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:emptyNameSet" ><A NAME="v%3AemptyNameSet" ></A ></A ><B >emptyNameSet</B > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unitNameSet" ><A NAME="v%3AunitNameSet" ></A ></A ><B >unitNameSet</B > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkNameSet" ><A NAME="v%3AmkNameSet" ></A ></A ><B >mkNameSet</B > :: [<A HREF="Name.html#t%3AName" >Name</A >] -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unionNameSets" ><A NAME="v%3AunionNameSets" ></A ></A ><B >unionNameSets</B > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unionManyNameSets" ><A NAME="v%3AunionManyNameSets" ></A ></A ><B >unionManyNameSets</B > :: [<A HREF="NameSet.html#t%3ANameSet" >NameSet</A >] -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:minusNameSet" ><A NAME="v%3AminusNameSet" ></A ></A ><B >minusNameSet</B > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:elemNameSet" ><A NAME="v%3AelemNameSet" ></A ></A ><B >elemNameSet</B > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:nameSetToList" ><A NAME="v%3AnameSetToList" ></A ></A ><B >nameSetToList</B > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> [<A HREF="Name.html#t%3AName" >Name</A >]</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:addOneToNameSet" ><A NAME="v%3AaddOneToNameSet" ></A ></A ><B >addOneToNameSet</B > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:addListToNameSet" ><A NAME="v%3AaddListToNameSet" ></A ></A ><B >addListToNameSet</B > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> [<A HREF="Name.html#t%3AName" >Name</A >] -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:delFromNameSet" ><A NAME="v%3AdelFromNameSet" ></A ></A ><B >delFromNameSet</B > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:delListFromNameSet" ><A NAME="v%3AdelListFromNameSet" ></A ></A ><B >delListFromNameSet</B > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> [<A HREF="Name.html#t%3AName" >Name</A >] -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:isEmptyNameSet" ><A NAME="v%3AisEmptyNameSet" ></A ></A ><B >isEmptyNameSet</B > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:foldNameSet" ><A NAME="v%3AfoldNameSet" ></A ></A ><B >foldNameSet</B > :: (<A HREF="Name.html#t%3AName" >Name</A > -> b -> b) -> b -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> b</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:filterNameSet" ><A NAME="v%3AfilterNameSet" ></A ></A ><B >filterNameSet</B > :: (<A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:intersectsNameSet" ><A NAME="v%3AintersectsNameSet" ></A ></A ><B >intersectsNameSet</B > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" >True if there is a non-empty intersection. <TT >s1 <TT ><A HREF="NameSet.html#v%3AintersectsNameSet" >intersectsNameSet</A ></TT > s2</TT > doesn't compute <TT >s2</TT > if <TT >s1</TT > is empty </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:intersectNameSet" ><A NAME="v%3AintersectNameSet" ></A ></A ><B >intersectNameSet</B > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="3" ><A NAME="3" >Free variables </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:FreeVars" ><A NAME="t%3AFreeVars" ></A ></A ><B >FreeVars</B > = <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="4" ><A NAME="4" >Manipulating sets of free variables </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:isEmptyFVs" ><A NAME="v%3AisEmptyFVs" ></A ></A ><B >isEmptyFVs</B > :: <A HREF="NameSet.html#t%3ANameSet" >NameSet</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:emptyFVs" ><A NAME="v%3AemptyFVs" ></A ></A ><B >emptyFVs</B > :: <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:plusFVs" ><A NAME="v%3AplusFVs" ></A ></A ><B >plusFVs</B > :: [<A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A >] -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:plusFV" ><A NAME="v%3AplusFV" ></A ></A ><B >plusFV</B > :: <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A > -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A > -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkFVs" ><A NAME="v%3AmkFVs" ></A ></A ><B >mkFVs</B > :: [<A HREF="Name.html#t%3AName" >Name</A >] -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:addOneFV" ><A NAME="v%3AaddOneFV" ></A ></A ><B >addOneFV</B > :: <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A > -> <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:unitFV" ><A NAME="v%3AunitFV" ></A ></A ><B >unitFV</B > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:delFV" ><A NAME="v%3AdelFV" ></A ></A ><B >delFV</B > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A > -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:delFVs" ><A NAME="v%3AdelFVs" ></A ></A ><B >delFVs</B > :: [<A HREF="Name.html#t%3AName" >Name</A >] -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A > -> <A HREF="NameSet.html#t%3AFreeVars" >FreeVars</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="5" ><A NAME="5" >Defs and uses </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:Defs" ><A NAME="t%3ADefs" ></A ></A ><B >Defs</B > = <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="doc" >A set of names that are defined somewhere </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:Uses" ><A NAME="t%3AUses" ></A ></A ><B >Uses</B > = <A HREF="NameSet.html#t%3ANameSet" >NameSet</A ></TD ></TR ><TR ><TD CLASS="doc" >A set of names that are used somewhere </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:DefUse" ><A NAME="t%3ADefUse" ></A ></A ><B >DefUse</B > = (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="NameSet.html#t%3ADefs" >Defs</A >, <A HREF="NameSet.html#t%3AUses" >Uses</A >)</TD ></TR ><TR ><TD CLASS="doc" ><P ><TT >(Just ds, us) =></TT > The use of any member of the <TT >ds</TT > implies that all the <TT >us</TT > are used too. Also, <TT >us</TT > may mention <TT >ds</TT >. </P ><P ><TT >Nothing =></TT > Nothing is defined in this group, but nevertheless all the uses are essential. Used for instance declarations, for example </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:DefUses" ><A NAME="t%3ADefUses" ></A ></A ><B >DefUses</B > = [<A HREF="NameSet.html#t%3ADefUse" >DefUse</A >]</TD ></TR ><TR ><TD CLASS="doc" >A number of <TT ><A HREF="NameSet.html#t%3ADefUse" >DefUse</A ></TT >s in dependency order: earlier <TT ><A HREF="NameSet.html#t%3ADefs" >Defs</A ></TT > scope over later <TT ><A HREF="NameSet.html#t%3AUses" >Uses</A ></TT > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="6" ><A NAME="6" >Manipulating defs and uses </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:emptyDUs" ><A NAME="v%3AemptyDUs" ></A ></A ><B >emptyDUs</B > :: <A HREF="NameSet.html#t%3ADefUses" >DefUses</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:usesOnly" ><A NAME="v%3AusesOnly" ></A ></A ><B >usesOnly</B > :: <A HREF="NameSet.html#t%3AUses" >Uses</A > -> <A HREF="NameSet.html#t%3ADefUses" >DefUses</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkDUs" ><A NAME="v%3AmkDUs" ></A ></A ><B >mkDUs</B > :: [(<A HREF="NameSet.html#t%3ADefs" >Defs</A >, <A HREF="NameSet.html#t%3AUses" >Uses</A >)] -> <A HREF="NameSet.html#t%3ADefUses" >DefUses</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:plusDU" ><A NAME="v%3AplusDU" ></A ></A ><B >plusDU</B > :: <A HREF="NameSet.html#t%3ADefUses" >DefUses</A > -> <A HREF="NameSet.html#t%3ADefUses" >DefUses</A > -> <A HREF="NameSet.html#t%3ADefUses" >DefUses</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:findUses" ><A NAME="v%3AfindUses" ></A ></A ><B >findUses</B > :: <A HREF="NameSet.html#t%3ADefUses" >DefUses</A > -> <A HREF="NameSet.html#t%3AUses" >Uses</A > -> <A HREF="NameSet.html#t%3AUses" >Uses</A ></TD ></TR ><TR ><TD CLASS="doc" >Given some <TT ><A HREF="NameSet.html#t%3ADefUses" >DefUses</A ></TT > and some <TT ><A HREF="NameSet.html#t%3AUses" >Uses</A ></TT >, find all the uses, transitively. The result is a superset of the input <TT ><A HREF="NameSet.html#t%3AUses" >Uses</A ></TT >; and includes things defined in the input <TT ><A HREF="NameSet.html#t%3ADefUses" >DefUses</A ></TT > (but only if they are used) </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:duDefs" ><A NAME="v%3AduDefs" ></A ></A ><B >duDefs</B > :: <A HREF="NameSet.html#t%3ADefUses" >DefUses</A > -> <A HREF="NameSet.html#t%3ADefs" >Defs</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:duUses" ><A NAME="v%3AduUses" ></A ></A ><B >duUses</B > :: <A HREF="NameSet.html#t%3ADefUses" >DefUses</A > -> <A HREF="NameSet.html#t%3AUses" >Uses</A ></TD ></TR ><TR ><TD CLASS="doc" >Just like <TT ><A HREF="NameSet.html#v%3AallUses" >allUses</A ></TT >, but <TT ><A HREF="NameSet.html#t%3ADefs" >Defs</A ></TT > are not eliminated from the <TT ><A HREF="NameSet.html#t%3AUses" >Uses</A ></TT > returned </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:allUses" ><A NAME="v%3AallUses" ></A ></A ><B >allUses</B > :: <A HREF="NameSet.html#t%3ADefUses" >DefUses</A > -> <A HREF="NameSet.html#t%3AUses" >Uses</A ></TD ></TR ><TR ><TD CLASS="doc" >Collect all <TT ><A HREF="NameSet.html#t%3AUses" >Uses</A ></TT >, regardless of whether the group is itself used, but remove <TT ><A HREF="NameSet.html#t%3ADefs" >Defs</A ></TT > on the way </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 >