Strict and Lazy Semantics for Effects Layering Monads
- Slides: 36
Strict and Lazy Semantics for Effects Layering Monads and Comonads Andrew K. Hirsch and Ross Tate 1
Reduce 1 st Reduce Done reducing; Discard unused 2
Unused Throws Exception 3
Throws an Might not produce exception its outputs Might not consume its inputs Producer Choice (of Quantity) Consumer Choice (of Quantity) Pure = Linear 4
Producer Choice There was a problem, stop everything! Consumer Choice 5
Producer Choice We don’t need that, don’t bother evaluating it Consumer Choice 6
Eff ect o M s d a n o m o C s s s ne s d s s e n i z a L & t c tri S 7
How do I use these together? m o C a on s d a n o M 8
Effectful Language Non-Linear Language with Exceptions Example language with strict and lazy semantics Comp – Language of Computations Pure Language Linear Language without Exceptions Process calculus with linear session types Proc – Language of Processes 9
exn And this program never runs Linear If this Proc throws an Program exception exn Bind propagates that exception So this bind throws an exception Capturing Exceptions in a Monad 10
Connections drop to logic in paper And this From linear does not logic need to run A comonad If this is Cobind propagates So this cobind dropped that drop should be dropped Capturing Drops in a Comonad 11
Comp Proc Generalizes Maybe From Linear Logic exn drop exn, drop 12
How do I use these together? m o C a on s d a n o M 13
Comp Proc Generalizes Maybe From Linear Logic exn drop exn, drop straightforward 14
exn, drop exn, drop 15
exn, drop Distributive Law cobind exn, drop 16
With a distributive law m o C a on s d How do I use these together? s d a n o M 17
exn, drop cobind Distributive Law exn, drop bind 18
With a distributive law m o C a on s d How do I use these together? s d a n o M 19
Producer Choice Consumer Choice 20
exn, drop So this program never runs If this program throws an exception Bind will propagate that exception exn, drop bind The Monad-Prioritizing Layering 21
Comp Proc Generalizes Maybe From Linear Logic exn drop exn, drop Monad-Prioritizing 22
Producer Choice Consumer Choice 23
exn, drop So this program never runs exn, drop cobind Cobind will propagate that drop If this program drops its input The Comonad-Prioritizing Layering 24
Comp Proc Generalizes Maybe From Linear Logic exn drop exn, drop Comonad-Prioritizing 25
Programs Monad. Prioritizing Proc strict Monad. Prioritizing Comp Values 26
Programs Comonad. Prioritizing Proc lazy Comonad. Prioritizing Comp Values 27
By choosing a layering m o C a on s d How do I use these together? s d a n o M 28
Eff ect o M s d a n o m o C s s s ne s d s s e n i z a L & t c tri S 29
Producer Effect Generalizing Layering 30
Producer Effect Consumer Effect Comonad. Prioritizing “Lazy” Monad. Prioritizing “Strict” Generalizing Layering 31
Choice is between a “strict” and a “lazy” semantics for effects. If there is not a distributive law: 1. Monad-Prioritizing Layering 2. Comonad-Prioritizing Layering 32
Theorem: All three semantics are the same. If there is a distributive law: 1. Monad-Prioritizing Layering 2. Comonad-Prioritizing Layering 3. Distributive-Law Based Semantics 33
Theorem: If there is a distributive law, then all three semantics are the same. Reduce 1 st Corollary: There is no distributive law of ! over ? Done reducing; Reduce 1 st Discard unused 34
In the paper • Connections to logic (linear and classical) • A formalization of doubly-effectful languages • Categorical Formalization • Theorem Details • mostly in the tech report 35
Thanks 36
- Strict layering
- Monads and gonads
- Compare procedural semantics and declarative semantics.
- Czerhaimi monads
- Wearing a hair shirt
- Strict norms that control moral and ethical behavior
- Objectives of plant propagation
- Protocol layering principle
- Plant propagation algorithm
- Layering asexual reproduction
- Gartner pace
- Money laundering placement layering integration
- Trench layering
- Trench layering
- Layering plants meaning
- This refers to the layering of different digital media
- Layered mafic intrusion
- Layering food
- Layering
- Layering
- Money laundering stages
- Strict subset
- Strict interpretation of taxing statutes
- Strict alternation
- Strict alternation algorithm
- Strict subset
- Pharmaceutical society of great britain v storkwain
- Strict scrutiny test
- Strict scrutiny test
- Strict consistency
- Strict consistency
- Chapter 13 medical records management
- Strict scrutiny test
- Strict sense stationary
- Constructionist theory president
- Strict egalitarianism
- Explanation