Commit Graph

29 Commits

Author SHA1 Message Date
Sandy Maguire
2e2ad315e9 Release v1.8.0.0 2022-12-22 09:25:20 -08:00
KingoftheHomeless
76af343a96
Extend Scoped (#459)
* add variants of interpretScoped that allow additional local effects
* add call site parameter to Scoped
2022-10-02 18:49:17 +02:00
Xy Ren
8450bff3d8 Prevent errorToIOFinal from mixing errors up (#444) 2022-01-23 20:41:35 +01:00
TheMatten
dc16f081f4
Drop support for GHC 8.4.*, update and fix dependencies (#405)
* Drop support for GHC 8.4.*, update and fix dependencies

* Remove 8.4.4 from CI

* Remove references to loopbreaker
2021-03-20 22:46:57 +01:00
Andrew Miller
64f63c7739 Support newer ghc-tcplugins-extra in latest stackage LTS 2020-06-18 22:30:42 +10:00
TheMatten
ad07c63b9f Relax fcf bounds 2020-03-10 08:35:34 +01:00
Georgi Lyubenov
124b473964
Bring back monadLib with a clarification comment (#300) 2019-12-16 09:35:04 +02:00
Georgi Lyubenov
49afd96b45
Remove extra-deps that are now in resolver (#299)
* Remove extra-deps that are now in resolver

Notably this bumps the following libraries:
* aeson: 1.4.3.0 -> 1.4.6.0
* bifunctors: 5.5.4 -> 5.5.6
* inspection-testing: 0.4.2 -> 0.4.2.2
* th-abstraction: 0.3.1.0 -> 0.3.1.0@rev:1

* Remove monadLib, it's unused
2019-12-14 22:13:07 +02:00
KingoftheHomeless
8385c9986e
Update resolver (#298) 2019-12-13 23:11:07 +01:00
Samuel Evans-Powell
95b4b5508c Feature/cabal doctest and ghc 8.8.1 (#267)
* Use cabal-doctest

- Haskell build tools run in slightly different environments (meaning different
  package databases are available).
- The nixpkgs build for polysemy-plugin is failing due to a missing package
  database, which causes the doctest to fail (more information here:
  https://github.com/NixOS/nixpkgs/issues/71164).
- By using cabal-doctest we can expose the Haskell packages required to the
  doctests no matter the build tool we're using.

* Use cabal-doctest in polysemy, build on GHC 8.8.1

- Use @googleson78 's changes to build polysemy on GHC 8.8.1, with slight
  modifications. The source distribution is now found in "dist-newstyle/sdist",
  so we've updated the command to point at that folder. Additionally, cabal
  v2-install doesn't support installing .tar.gz files in the same way v1-install
  did, so updated the command to use "cabal v1-install".
- Modified polysemy to use "cabal-doctest" and so overcome issues with the
  doctest tests (see issue #258, PR #265).
2019-10-28 17:13:44 +01:00
Georgi Lyubenov
378b7b11bf Depend on newer loopbreaker (#235) (#257) 2019-10-18 10:14:44 +01:00
Georgi Lyubenov
ee2956fa7f Depend on newer type-errors-pretty (#235) (#255) 2019-10-18 10:14:27 +01:00
Georgi Lyubenov
73099a1fb5 Depend on newer unagi-chan (#235) (#256) 2019-10-18 10:14:05 +01:00
KingoftheHomeless
4a5f2ce92a
Add Final Effect (#217)
* Add Final Effect

* Changes per review, Final at top-level, doc changes

* Update Changelog

* Final touches to Final

* Revert change to stack.yaml
2019-08-30 22:38:53 +02:00
Dmitrii Kovanikov
011530bba1 [#180] Use type-errors-pretty package (#182)
Resolves #180
2019-07-20 08:48:42 -04:00
Sandy Maguire
482de98afe
Use type-errors for our type errors! (#144)
This PR has farmed out the type error machinery out to my new package https://github.com/isovector/type-errors. It's much nicer to work with, and a big red diff!
2019-07-03 16:05:51 -04:00
TheMatten
8bbd9dc7d6 Use new, separate loopbreaker library for inlining (#145)
* Remove explicit loopbreakers, enable plugin

* Use uploaded version of `loopbreaker`

* Fix span of macro

* Disable plugin on GHC <8.6

* Add comment about use of plugin

* Separate unrelated conditions
2019-07-01 02:13:37 -04:00
Sandy Maguire
2654d35066
Forklift interpretations (#128)
This PR provides a single function withLowerToIO, which runs a desired Sem r effect all the way down to IO, without needing to know the natural transformation beforehand. It does it by running the desired code in a new thread, and shipping all of the unhandled effects back to the main thread. The main thread turns into an event loop for the duration of the withLowerToIO block.
2019-06-25 23:46:54 -04:00
Sandy Maguire
bba49aaeb8
Don't emit the FirstOrder error for unknown effects (#115)
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.
2019-06-16 17:14:36 -04:00
Sandy Maguire
82f86add29
Custom type error testing (#113)
This PR adds doctests allowing us to write tests for the custom type errors. Having this stuff reified in the test suite means we can iterate on the implementations and give much better QA.
2019-06-15 20:04:11 -04:00
Sandy Maguire
ca0c68e1c3 Fix benchmark
Fixes #92
2019-06-08 23:15:37 -04:00
Sandy Maguire
f5dcbe3c98
Fixes #54 (#85) 2019-06-05 09:44:34 -04:00
TheMatten
b41e650f00 Rewrite 'Polysemy.Internal.TH.Effect' in terms of 'th-abstraction' (#67) 2019-05-29 14:15:46 -04:00
Sandy Maguire
30169352e4 plugin 2019-04-20 18:31:17 -04:00
Sandy Maguire
130a18ad6a it is so FAST 2019-03-18 15:50:19 -04:00
Sandy Maguire
730859a5f3 core-dump 2019-03-17 21:03:23 -04:00
Sandy Maguire
32ce375447 I AM THE KING BRAIN LORD also fintan 2019-03-02 15:55:19 -08:00
Sandy Maguire
5388029d10 it's TOO FAST and TOO FREE 2019-02-14 09:24:26 -05:00
Sandy Maguire
9c8162a5b1 GLORY 2019-02-13 15:52:56 -05:00