This module contains the basic data types underlying the
`IOSpec`

library. Most of the types and classes in this module
are described in
http://www.cs.nott.ac.uk/~wss/Publications/DataTypesALaCarte.pdf.

# The `IOSpec`

type.

foldIOSpec :: Functor f => (a -> b) -> (f b -> b) -> IOSpec f a -> bSource

The fold over `IOSpec`

values.

# Coproducts of functors

The coproduct of functors