Sciweavers

ICFP
2006
ACM

Programming monads operationally with Unimo

15 years 8 days ago
Programming monads operationally with Unimo
Monads are widely used in Haskell for modeling computational effects, but defining monads remains a daunting challenge. Since every part of a monad's definition depends on its computational effects, programmers cannot leverage the common behavior of all monads easily and thus must build from scratch each monad that models a new computational effect. I propose the Unimo framework which allows programmers to define monads and monad transformers in a modular manner. Unimo contains a heavily parameterized observer function which enforces the monad laws, and programmers define a monad by invoking the observer function with arguments that specify the computational effects of the monad. Since Unimo provides the common behavior of all monads in a reusable form, programmers no longer need to rebuild the semantic boilerplate for each monad and can instead focus on the more interesting and rewarding task of modeling the desired computational effects.
Chuan-Kai Lin
Added 13 Dec 2009
Updated 13 Dec 2009
Type Conference
Year 2006
Where ICFP
Authors Chuan-Kai Lin
Comments (0)