freer-indexed-0.1.0.0: freer-indexed.cabal
cabal-version: 1.12
-- This file has been generated from package.yaml by hpack version 0.33.0.
--
-- see: https://github.com/sol/hpack
--
-- hash: 17819600aa912c8d567ebcb890baa163e88586b432f075b4174db649de9ccc01
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.
category: Effects
homepage: https://github.com/epoberezkin/freer-indexed#readme
bug-reports: https://github.com/epoberezkin/freer-indexed/issues
author: Evgeny Poberezkin
maintainer: evgeny@poberezkin.com
copyright: 2020 Evgeny Poberezkin
license: BSD3
license-file: LICENSE
build-type: Simple
extra-source-files:
README.md
CHANGELOG.md
source-repository head
type: git
location: https://github.com/epoberezkin/freer-indexed
library
exposed-modules:
Control.XApplicative
Control.XFreer
Control.XMonad
Control.XMonad.Do
other-modules:
Paths_freer_indexed
hs-source-dirs:
src
ghc-options: -Wall -Wcompat -Worphans -Werror=incomplete-patterns -Werror=incomplete-uni-patterns -Wno-name-shadowing
build-depends:
base >=4.7 && <5
default-language: Haskell2010