multiple dispatch - link to HN discussion? events processing different kinds of events different kinds of processing
functionally in Haskell using GADTs - read post from todo first.