Advanced search
1 file | 234.54 KB

Monads, zippers and views: virtualizing the monad stack

(2011) ACM SIGPLAN NOTICES. 46(9). p.32-44
Author
Organization
Abstract
We make monadic components more reusable and robust to changes by employing two new techniques for virtualizing the monad stack: the monad zipper and monad views. The monad zipper is a higher-order monad transformer that creates virtual monad stacks by ignoring particular layers in a concrete stack. Monad views provide a general framework for monad stack virtualization: they take the monad zipper one step further and integrate it with a wide range of other virtualizations. For instance, particular views allow restricted access to monads in the stack. Furthermore, monad views provide components with a call-by-reference-like mechanism for accessing particular layers of the monad stack. With our two new mechanisms, the monadic effects required by components no longer need to be literally reflected in the concrete monad stack. This makes these components more reusable and robust to changes.
Keywords
functional programming, Haskell, computer science, programming languages, monad transformers, modularity, monads, side effects

Downloads

  • (...).pdf
    • full text
    • |
    • UGent only
    • |
    • PDF
    • |
    • 234.54 KB

Citation

Please use this url to cite or link to this publication:

Chicago
Schrijvers, Tom, and Bruno C de S Oliveira. 2011. “Monads, Zippers and Views: Virtualizing the Monad Stack.” Acm Sigplan Notices 46 (9): 32–44.
APA
Schrijvers, T., & Oliveira, B. C. de S. (2011). Monads, zippers and views: virtualizing the monad stack. ACM SIGPLAN NOTICES, 46(9), 32–44. Presented at the 16th ACM SIGPLAN international conference on Functional Programming (ICFP 2011).
Vancouver
1.
Schrijvers T, Oliveira BC de S. Monads, zippers and views: virtualizing the monad stack. ACM SIGPLAN NOTICES. 2011;46(9):32–44.
MLA
Schrijvers, Tom, and Bruno C de S Oliveira. “Monads, Zippers and Views: Virtualizing the Monad Stack.” ACM SIGPLAN NOTICES 46.9 (2011): 32–44. Print.
@article{1246782,
  abstract     = {We make monadic components more reusable and robust to changes by employing two new techniques for virtualizing the monad stack: the monad zipper and monad views. The monad zipper is a higher-order monad transformer that creates virtual monad stacks by ignoring particular layers in a concrete stack. Monad views provide a general framework for monad stack virtualization: they take the monad zipper one step further and integrate it with a wide range of other virtualizations. For instance, particular views allow restricted access to monads in the stack. Furthermore, monad views provide components with a call-by-reference-like mechanism for accessing particular layers of the monad stack. 
With our two new mechanisms, the monadic effects required by components no longer need to be literally reflected in the concrete monad stack. This makes these components more reusable and robust to changes.},
  author       = {Schrijvers, Tom and Oliveira, Bruno C de S},
  isbn         = {9781450308656},
  issn         = {0362-1340},
  journal      = {ACM SIGPLAN NOTICES},
  keywords     = {functional programming,Haskell,computer science,programming languages,monad transformers,modularity,monads,side effects},
  language     = {eng},
  location     = {Tokyo, Japan},
  number       = {9},
  pages        = {32--44},
  title        = {Monads, zippers and views: virtualizing the monad stack},
  url          = {http://dx.doi.org/10.1145/2034574.2034781},
  volume       = {46},
  year         = {2011},
}

Altmetric
View in Altmetric
Web of Science
Times cited: