Commit Graph

23 Commits

Author SHA1 Message Date
Will Fancher
86a8212cd8 Added Members Constraint
The Members type family (closed) takes two type-level lists, m and r,
as parameters. m contains the effect labels which should be members of
r. The resulting type is a constraint requiring that all elements of m
be members of r.

This simplifies constraints that require multiple members of the same
effect list. For example.

ioState :: (Member IO r, Member (State Int) r) => Eff r ()

becomes

ioState :: Members '[IO, State Int] r => Eff r ()

Furthermore, it allows apps to easily define their typical effect
constraints alongside the typical runtime effect.

type AppEffs = '[State Int, Writer String, IO]
type AppConstraint r = Members AppEffs r
type RunApp = Eff AppEffs
2016-02-07 06:37:45 -05:00
Allele Dev
72c19abc4f flesh out example 2016-02-01 21:47:14 +00:00
Alej Cabrera
d62a40947b release(0.2.2.2): fix Open.Union 2015-09-14 02:29:11 -05:00
Alej Cabrera
dc2be626b6 fix(Union): revert GHC.TypeLits; overlaps insts 2015-09-14 02:27:58 -05:00
Alej Cabrera
95bc74803b release(0.2.2.1): documentation 2015-09-14 02:08:03 -05:00
Alej Cabrera
b67831581f docs: fix build 2015-09-14 02:07:26 -05:00
Alej Cabrera
f77650b0c7 fix: build - Y -> Status 2015-09-14 02:02:36 -05:00
Alej Cabrera
ca9be3ed22 docs: add module level documentation 2015-09-14 02:01:22 -05:00
Alej Cabrera
e0886b0f79 Open.Union: use GHC.TypeLits.Nat 2015-09-14 00:36:58 -05:00
Alej Cabrera
826c39e17e add: bench support 2015-09-13 04:51:27 -05:00
Alej Cabrera
4342365bcf style(tests): address hlint suggestions 2015-09-13 00:17:28 -05:00
Alej Cabrera
85ceb6fbec cleanup: examples, tests 2015-09-13 00:11:43 -05:00
Alej Cabrera
667aaef032 release(0.2.1.0): add test suite 2015-09-13 00:00:16 -05:00
Alej Cabrera
fd5d8d86c8 release(0.2.0.2): Teletype, cleanup 2015-09-12 14:14:47 -05:00
Alej Cabrera
1ee237a884 release(0.2.0.1): Teletype example 2015-09-12 14:04:59 -05:00
Alej Cabrera
c9677652d2 add(examples): Teletype DSL 2015-09-12 14:04:04 -05:00
Alej Cabrera
7b404638a1 add: expose send from Freer 2015-09-12 14:03:30 -05:00
Alej Cabrera
59645ed8cb docs(Union): add some commentary 2015-09-12 14:02:25 -05:00
Alej Cabrera
fa212cb126 add(0.2.0): NonDetEff; more clean up
* Implement NonDetEff
* Separate Cut/Coroutine out from Internals
  * Partial implementation: won't compile yet
* Extract remaining examples from Internal comments
2015-09-12 03:01:16 -05:00
Alej Cabrera
6108d8ee42 docs: README, CoC, changelog 2015-09-12 01:41:06 -05:00
Alej Cabrera
0c6457d3e9 release(0.1.1): fix all warnings; separate examples 2015-09-12 01:21:40 -05:00
Alej Cabrera
b469ca6ffd style(*): apply hlint 2015-09-12 00:43:39 -05:00
Alej Cabrera
7897b40ec9 initial commit 2015-09-12 00:38:18 -05:00