Skip to content

Instantly share code, notes, and snippets.

Keybase proof

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:

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

Propagators

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.

@gwils
gwils / jwk.hs
Last active January 11, 2017 04:31 — forked from tonymorris/jwk.hs
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE DeriveFoldable #-}
import Control.Lens
import Data.Foldable
newtype JWKSet = JWKSet [JWK]
data JWK = JWK