# ¤ aboth, mapPair, et al

Various utility functions for pairs and lists
## Types

aboth :: (`a` -> `b`) -> (`a`, `a`) -> (`b`, `b`)
mapPair :: (`a` -> `b`, `c` -> `d`) -> (`a`, `c`) -> (`b`, `d`)
pairwith :: (`a` -> `b`) -> `a` -> (`a`, `b`)
swap :: (`a`, `b`) -> (`b`, `a`)
pair :: `a` -> `b` -> (`a`, `b`)
oo :: (`a` -> `b`) -> (`c` -> `d` -> `a`) -> `c` -> `d` -> `b`
anth :: Int -> (`a` -> `a`) -> [`a`] -> [`a`]
number :: Int -> [`a`] -> [(Int, `a`)]
loop :: (`a` -> `a`) -> `a`
gmap :: (`a` -> [`b`] -> [`b`]) -> (`c` -> `a`) -> [`c`] -> [`b`]
unionmap :: (Eq `b`) => (`a` -> [`b`]) -> [`a`] -> [`b`]
remove :: (Eq `a`) => `a` -> [`a`] -> [`a`]
replace :: (Eq `a`) => (`a`, `b`) -> [(`a`, `b`)] -> [(`a`, `b`)]
lhead :: [`a`] -> [`b`] -> [`b`]
ltail :: [`a`] -> [`b`] -> [`b`]
lsplit :: [`a`] -> [`b`] -> ([`b`], [`b`])
part :: (`a` -> Bool) -> [`a`] -> ([`a`], [`a`])
issubset :: (Eq `a`) => [`a`] -> [`a`] -> Bool

## Description

These are various small utility functions missing from the standard
Haskell libraries.