packages feed

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