-
Notifications
You must be signed in to change notification settings - Fork 0
/
package.yaml
53 lines (43 loc) · 2.01 KB
/
package.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
name: freer-indexed
version: 0.1.0.0
synopsis: Freer indexed monad for type-level resource-aware effectual operations.
description: |
This package defines "freer indexed monad". It combines the ideas of freer monad and indexed (aka parameterized) monad:
* <http://okmij.org/ftp/Haskell/extensible/more.pdf Freer Monads, More Extensible Effects>
* <http://okmij.org/ftp/Computation/monads.html#param-monad Parameterized monads>
* <http://okmij.org/ftp/Haskell/extensible/index.html#extext Parameterized Extensible Effects and Session Types>
It allows defining indexed monadic computations as GADTs without making
them into ad-hoc indexed monads, and instead use this data type
to convert them into Functor, XApplicative and XMonad instances
- see Control.XApplicative and Control.XMonad in this package.
This package does not (yet) allow composing these computations.
Semantically, these computations could represent type-level state changes
of some associated resources, with the first index parameter meaning
initial resource state prior to the computation, and the second index -
the final resource state, making each computation an edge in the graph
of resource state transitions.
For XApplicative/XMonad classes all class and additional functions have similar names
to standard Applicative/Monad functions, following two naming conventions:
* function names are prefixed with "x" (for "indeXed") - e.g. `xpure`, `xreturn`, `xliftM2` etc.
* operators are postfixed with ":" - e.g. `<*>:`, `>>=:`, `>=>:` etc.
github: epoberezkin/freer-indexed
homepage: https://github.com/epoberezkin/freer-indexed#readme
license: BSD3
author: Evgeny Poberezkin
maintainer: evgeny@poberezkin.com
copyright: 2020 Evgeny Poberezkin
category: Control, Effects
extra-source-files:
- README.md
- CHANGELOG.md
dependencies:
- base >= 4.7 && < 5
library:
source-dirs: src
ghc-options:
- -Wall
- -Wcompat
- -Worphans
- -Werror=incomplete-patterns
- -Werror=incomplete-uni-patterns
- -Wno-name-shadowing