I hereby claim:
- I am gwils on github.
- I am gwils (https://keybase.io/gwils) on keybase.
- I have a public key ASBQwFTvyYwpglZPGmcIX3J_qhZft7UGYJ1M4CenZ9o0xwo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
data These a b = This a | That b | These a b | |
data These3 a b c = T3a a | T3b b | T3c c | T3ab a b | T3bc b c | T3ac a c | T3abc a b c | |
theseTo3 :: These a (These b c) -> These3 a b c | |
theseTo3 (This a) = T3a a | |
theseTo3 (That (This b)) = T3b b | |
theseTo3 (That (That c)) = T3c c | |
theseTo3 (These a (This b)) = T3ab a b | |
theseTo3 (That (These b c)) = T3bc b c |
20170620
Information about propagators and propagator accessories
This document is not intended as an introduction to propagators. Rather it's a collection of resources. As a minimal introduction: a propagator is a monotone function between join-semilattices. We intend to build networks of cells which contain values drawn from join-semilattices, connected by propagators, which read from and write to some cells. These networks have very useful properties for concurrent and distributed programming, among many other things.
{-# LANGUAGE FlexibleInstances #-} | |
{-# LANGUAGE DeriveFoldable #-} | |
import Control.Lens | |
import Data.Foldable | |
newtype JWKSet = JWKSet [JWK] | |
data JWK = JWK |