§ Intuition for limits in category theory

§ A characterization of limits

The theorem that characterizes limits is this:
A category has Finite Limits iff it has all finite products and equalizers. limits have maps out of them.

§ Ravi Vakil's intuition for limits: Take sub things.

§ Limits are things you get maps out of.

§ Limits in Haskell

{-# LANGUAGE ExplicitForAll #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE GADTs #-}
data Limit (f :: * -> *) where
  MkLimit :: (forall a. f a) -> Limit f

projectOut :: Limit f -> f a
projectOut (MkLimit fa)  = fa

data Colimit (f:: * -> *) where
  MkCoLimit :: f a -> Colimit f

projectIn :: f a -> Colimit f
projectIn = MkCoLimit