NameSet

# Names set type

type NameSet

## Manipulating these sets

emptyNameSet
unitNameSet
mkNameSet
unionNameSets
unionManyNameSets
minusNameSet
elemNameSet
nameSetToList
addOneToNameSet
addListToNameSet
delFromNameSet
delListFromNameSet
isEmptyNameSet
foldNameSet
filterNameSet
intersectsNameSet
intersectNameSet

# Free variables

type FreeVars

## Manipulating sets of free variables

isEmptyFVs
emptyFVs
plusFVs
plusFV
mkFVs
addOneFV
unitFV
delFV
delFVs

# Defs and uses

type Defs
type Uses
type DefUse
type DefUses

## Manipulating defs and uses

emptyDUs
usesOnly
mkDUs
plusDU
findUses
duDefs
duUses
allUses