mirror of
https://github.com/sayo-hs/heftia.git
synced 2024-11-23 02:42:06 +03:00
Update README.md: add installation entry.
This commit is contained in:
parent
24e7774930
commit
67432212a7
70
README.md
70
README.md
@ -27,6 +27,58 @@ There may be significant changes and potential bugs.
|
|||||||
|
|
||||||
**We are looking forward to your feedback!**
|
**We are looking forward to your feedback!**
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
1.
|
||||||
|
```console
|
||||||
|
$ cabal update
|
||||||
|
```
|
||||||
|
2. Add `heftia-effects ^>= 0.2` and `ghc-typelits-knownnat ^>= 0.7` to the build dependencies. Enable the [ghc-typelits-knownnat](https://hackage.haskell.org/package/ghc-typelits-knownnat) plugin, `GHC2021`, and the following language extensions as needed:
|
||||||
|
|
||||||
|
* `LambdaCase`
|
||||||
|
* `DerivingStrategies`
|
||||||
|
* `DataKinds`
|
||||||
|
* `TypeFamilies`
|
||||||
|
* `BlockArguments`
|
||||||
|
* `FunctionalDependencies`
|
||||||
|
* `RecordWildCards`
|
||||||
|
* `DefaultSignatures`
|
||||||
|
* `PatternSynonyms`
|
||||||
|
* `TemplateHaskell`
|
||||||
|
* `PartialTypeSignatures`
|
||||||
|
* `AllowAmbiguousTypes`
|
||||||
|
|
||||||
|
Example .cabal:
|
||||||
|
|
||||||
|
```
|
||||||
|
...
|
||||||
|
build-depends:
|
||||||
|
...
|
||||||
|
heftia-effects ^>= 0.2,
|
||||||
|
ghc-typelits-knownnat ^>= 0.7,
|
||||||
|
|
||||||
|
default-language: GHC2021
|
||||||
|
|
||||||
|
default-extensions:
|
||||||
|
...
|
||||||
|
LambdaCase,
|
||||||
|
DerivingStrategies,
|
||||||
|
DataKinds,
|
||||||
|
TypeFamilies,
|
||||||
|
BlockArguments,
|
||||||
|
FunctionalDependencies,
|
||||||
|
RecordWildCards,
|
||||||
|
DefaultSignatures,
|
||||||
|
PatternSynonyms,
|
||||||
|
TemplateHaskell,
|
||||||
|
PartialTypeSignatures,
|
||||||
|
AllowAmbiguousTypes
|
||||||
|
|
||||||
|
ghc-options: ... -fplugin GHC.TypeLits.KnownNat.Solver
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
This library has been tested to work with GHC 9.2.8.
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
To run the [SemanticsZoo example](https://github.com/sayo-hs/heftia/blob/232599fbdfaf13dcf009f40585369e0ec71fd0bd/heftia-effects/Example/SemanticsZoo/Main.hs):
|
To run the [SemanticsZoo example](https://github.com/sayo-hs/heftia/blob/232599fbdfaf13dcf009f40585369e0ec71fd0bd/heftia-effects/Example/SemanticsZoo/Main.hs):
|
||||||
```console
|
```console
|
||||||
@ -52,24 +104,6 @@ $ cabal run exe:SemanticsZoo
|
|||||||
$
|
$
|
||||||
```
|
```
|
||||||
|
|
||||||
If you are writing code from scratch, this library assumes the following GHC extensions and a plugin. Especially when using TemplateHaskell functions like `makeEffectF/H`, you will need to enable the following:
|
|
||||||
* GHC2021
|
|
||||||
* LambdaCase
|
|
||||||
* DerivingStrategies
|
|
||||||
* DataKinds
|
|
||||||
* TypeFamilies
|
|
||||||
* BlockArguments
|
|
||||||
* FunctionalDependencies
|
|
||||||
* RecordWildCards
|
|
||||||
* DefaultSignatures
|
|
||||||
* PatternSynonyms
|
|
||||||
* TemplateHaskell
|
|
||||||
* PartialTypeSignatures
|
|
||||||
* AllowAmbiguousTypes
|
|
||||||
* [ghc-typelits-knownnat](https://hackage.haskell.org/package/ghc-typelits-knownnat)
|
|
||||||
|
|
||||||
This library has been tested to work with GHC 9.2.8.
|
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
Compared to existing Effect System libraries in Haskell that handle higher-order effects, this
|
Compared to existing Effect System libraries in Haskell that handle higher-order effects, this
|
||||||
|
Loading…
Reference in New Issue
Block a user