mirror of
https://github.com/polysemy-research/polysemy.git
synced 2024-12-03 21:13:10 +03:00
bba49aaeb8
This PR introduces the FCF machinery that will give us more control over writing type-level functions. It defines an IfStuck a b c tyfam that will leave b around if a is stuck, otherwise it will fcf-evaluate c. Everything is polykinded so we can stack these things together to make big logic chains to emit specific variables depending on what exactly is stuck.
98 lines
2.1 KiB
YAML
98 lines
2.1 KiB
YAML
name: polysemy
|
|
version: 0.4.0.0
|
|
github: "isovector/polysemy"
|
|
license: BSD3
|
|
author: "Sandy Maguire"
|
|
maintainer: "sandy@sandymaguire.me"
|
|
copyright: "2019 Sandy Maguire"
|
|
|
|
extra-source-files:
|
|
- README.md
|
|
- ChangeLog.md
|
|
|
|
synopsis: Higher-order, low-boilerplate, zero-cost free monads.
|
|
category: Language
|
|
|
|
description: Please see the README on GitHub at <https://github.com/isovector/polysemy#readme>
|
|
|
|
dependencies:
|
|
- base >= 4.7 && < 5
|
|
- containers >= 0.6 && <= 0.7
|
|
- mtl >= 2.2.2 && <3
|
|
- syb >= 0.7 && <= 0.8
|
|
- template-haskell >= 2.14.0.0 && <2.15
|
|
- th-abstraction >= 0.3 && <= 0.4
|
|
- transformers >= 0.5.5.0 && < 0.6
|
|
- first-class-families >= 0.5.0.0 && < 0.6
|
|
|
|
default-extensions:
|
|
- DataKinds
|
|
- DeriveFunctor
|
|
- FlexibleContexts
|
|
- GADTs
|
|
- LambdaCase
|
|
- PolyKinds
|
|
- RankNTypes
|
|
- ScopedTypeVariables
|
|
- StandaloneDeriving
|
|
- TypeApplications
|
|
- TypeOperators
|
|
- TypeFamilies
|
|
- UnicodeSyntax
|
|
|
|
flags:
|
|
dump-core:
|
|
description: Dump HTML for the core generated by GHC during compilation
|
|
default: False
|
|
manual: True
|
|
error-messages:
|
|
description: Provide custom error messages
|
|
default: True
|
|
manual: True
|
|
|
|
library:
|
|
ghc-options: -Wall
|
|
source-dirs: src
|
|
other-modules: Polysemy.Internal.PluginLookup
|
|
|
|
when:
|
|
- condition: flag(dump-core)
|
|
dependencies:
|
|
- dump-core
|
|
ghc-options:
|
|
- -fplugin=DumpCore
|
|
- -fplugin-opt DumpCore:core-html
|
|
|
|
- condition: flag(error-messages)
|
|
then: {}
|
|
else:
|
|
cpp-options: -DNO_ERROR_MESSAGES
|
|
|
|
tests:
|
|
polysemy-test:
|
|
main: Main.hs
|
|
source-dirs: test
|
|
ghc-options:
|
|
- -threaded
|
|
- -rtsopts
|
|
- -with-rtsopts=-N
|
|
build-tools:
|
|
- hspec-discover >= 2.0
|
|
dependencies:
|
|
- polysemy
|
|
- inspection-testing >= 0.4.1.1 && < 0.5
|
|
- hspec >= 2.6.0 && < 3
|
|
- doctest >= 0.16.0.1 && < 0.17
|
|
|
|
benchmarks:
|
|
polysemy-bench:
|
|
source-dirs: bench
|
|
main: countDown.hs
|
|
dependencies:
|
|
- criterion
|
|
- free
|
|
- freer-simple
|
|
- mtl
|
|
- polysemy
|
|
|