-- Categories
import Category.Construction.ElgotAlgebras
import Category.Construction.ElgotAlgebras.Products
import Category.Construction.ElgotAlgebras.Exponentials
import Category.Construction.PreElgotMonads
import Category.Construction.StrongPreElgotMonads
import Category.Distributive.Helper


-- Algebras
import Algebra.Elgot
import Algebra.Elgot.Properties
import Algebra.Elgot.MoreProperties
import Algebra.Elgot.Free
import Algebra.Elgot.Stable
import Algebra.Search
import Algebra.Search.Retraction
import Algebra.Search.Properties
import Algebra.UniformIteration

-- Objects
import Object.FreeObject
import Object.NaturalNumbers.Primitive
import Object.NaturalNumbers.Parametrized.Primitive

-- Monads
import Monad.EquationalLifting
import Monad.Copy
import Monad.Helper
import Monad.PreElgot
import Monad.StrongPreElgot
import Monad.Strong.Helper

---- Maybe
import Monad.Instance.Maybe
import Monad.Instance.Maybe.Strong
import Monad.Instance.Maybe.Commutative
import Monad.Instance.Maybe.EquationalLifting

---- Delay
import Monad.Instance.Delay
import Monad.Instance.Delay.Guarded
import Monad.Instance.Delay.Iota
import Monad.Instance.Delay.Strong
import Monad.Instance.Delay.Commutative
import Monad.Instance.Delay.Quotient
import Monad.Instance.Delay.Quotient.Epis
import Monad.Instance.Delay.Quotient.Theorem.Index

---- K
import Monad.Instance.K
import Monad.Instance.K.Strong
import Monad.Instance.K.Commutative
import Monad.Instance.K.EquationalLifting
import Monad.Instance.K.PreElgot
import Monad.Instance.K.StrongPreElgot
import Monad.Instance.K.Kleene