UniqSupply

# Main data type

data UniqSupply

## Operations on supplies

uniqFromSupply

uniqsFromSupply

takeUniqFromSupply

mkSplitUniqSupply

splitUniqSupply

listSplitUniqSupply

splitUniqSupply3

splitUniqSupply4

# Unique supply monad and its abstraction

data UniqSM result

class MonadUnique m

liftUs

## Operations on the monad

initUs

initUs_

lazyThenUs

lazyMapUs

getUniqueSupplyM3

# Set supply strategy