BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Talks.cam//talks.cam.ac.uk//
X-WR-CALNAME:Talks.cam
BEGIN:VEVENT
SUMMARY:When Monads and Comonads Overlap - Dominic Orchard\, Computer Lab
DTSTART:20110520T140000Z
DTEND:20110520T150000Z
UID:TALK31165@talks.cam.ac.uk
CONTACT:Dominic Orchard
DESCRIPTION:The category theory structures of monads\, and their dual como
 nads\, can be used in semantics and programming as abstraction mechanisms\
 , or essentially as design patterns. Monads provide abstraction\, or struc
 ture\, over a class of computations with a common pattern which includes m
 any impure notions of computation. Comonads provide abstraction over anoth
 er class of computations which includes many contextual notions of computa
 tion. Interestingly\, these two classes appear non-mutually\nexclusive: th
 ere are some computations that can be structured by either a monad or a co
 monad. For example\, parameter passing can be structured by a reader monad
  or product comonad. In this talk we formalise the class of computations w
 hich is at the intersection between those structured by a monad and those 
 structured\nby a comonad. Furthermore\, using monads/comonads as a design 
 pattern\, we show how to derive a more appropriate structure when a partic
 ular monad or comonad abstraction falls short of capturing all aspects of 
 a computation and examine how to chose between using a monad or a comonad 
 when designing a program. Examples include the Wadge's monadic semantics f
 or the Lucid dataflow language vs. Uustalu and Vene's comonadic approach t
 en years later.\n
LOCATION:FW11\, Computer Laboratory
END:VEVENT
END:VCALENDAR
