Skip to main content
added 6 characters in body
Source Link
sclv
  • 39k
  • 7
  • 102
  • 208
instance Adjoint ((,) a) ((->) a) where
    -- counit :: (a,a -> b) -> b
    counit (x, f) = f x
    -- unit :: b -> (a -> (a, b))
    unit x = \y -> (y, x)
instance Adjoint ((,) a) ((->) a) where
    -- counit :: (a,a -> b) -> b
    counit (x, f) = f x
    -- unit :: a -> (a, b)
    unit x = \y -> (y, x)
instance Adjoint ((,) a) ((->) a) where
    -- counit :: (a,a -> b) -> b
    counit (x, f) = f x
    -- unit :: b -> (a -> (a,b))
    unit x = \y -> (y, x)
added 204 characters in body
Source Link
sclv
  • 39k
  • 7
  • 102
  • 208

Also, Hinze's recent Kan Extensions for Program Optimization paper walks through the construction of the list monad from the adjunction between Mon and Set: http://www.cs.ox.ac.uk/ralf.hinze/Kan.pdf

Also, Hinze's recent Kan Extensions for Program Optimization paper walks through the construction of the list monad from the adjunction between Mon and Set: http://www.cs.ox.ac.uk/ralf.hinze/Kan.pdf

added 194 characters in body
Source Link
sclv
  • 39k
  • 7
  • 102
  • 208

this material is covered in a different way by Derek Elkins' article in The Monad Reader 13 -- Calculating Monads with Category Theory: http://www.haskell.org/wikiupload/8/85/TMR-Issue13.pdf

this material is covered in a different way by Derek Elkins' article in The Monad Reader 13 -- Calculating Monads with Category Theory: http://www.haskell.org/wikiupload/8/85/TMR-Issue13.pdf

added 2475 characters in body
Source Link
sclv
  • 39k
  • 7
  • 102
  • 208
Loading
Source Link
sclv
  • 39k
  • 7
  • 102
  • 208
Loading