summaryrefslogtreecommitdiff
path: root/compiler/GHC/Utils/Monad
Commit message (Collapse)AuthorAgeFilesLines
* compiler: remove unused lazy state monadCheng Shao2022-09-131-78/+0
|
* Suggestions due to hlintMatthew Pickering2022-02-241-1/+0
| | | | | It turns out this job hasn't been running for quite a while (perhaps ever) so there are quite a few failures when running the linter locally.
* Write Note [Strict State monad] to explain what G.U.M.State.Strict doesSebastian Graf2022-01-241-24/+64
| | | | | | | | As requested by Simon after review of !7342. I also took liberty to define the `Functor` instance by hand, as the derived one subverts the invariants maintained by the pattern synonym (as already stated in `Note [The one-shot state monad trick]`).
* Stricten the Strict State monadSebastian Graf2022-01-181-8/+8
| | | | | | I found it weird that most of the combinators weren't actually strict. Making `pure` strict in the state should hopefully give Nested CPR an easier time to unbox the nested state.
* Use GHC's State monad consistentlyBen Gamari2021-05-292-2/+12
| | | | | | | | | | | | | GHC's internal State monad benefits from oneShot annotations on its state, allowing for more aggressive eta expansion. We currently don't have monad transformers with the same optimisation, so we only change uses of the pure State monad here. See #19657 and 19380. Metric Decrease: hie002
* Split GHC.Utils.Monad.State into .Strict and .LazyBen Gamari2021-05-292-1/+87
|
* One-Shotify GHC.Utils.Monad.State (#18202)Andreas Klebinger2021-04-051-1/+15
|
* Modules: Utils and Data (#13009)Sylvain Henry2020-04-261-0/+46
Update Haddock submodule Metric Increase: haddock.compiler