├── .gitignore ├── LICENSE ├── README.md ├── authors.html ├── homepage.html ├── install.md ├── older-releases.md ├── posts ├── 2021-05-29-upcomming-ghc-9-on-nightlies.md ├── announce-ghc-8-4-on-nightlies.md ├── announce-ghc-8.6-on-nightlies.md ├── announce-lts-12.md ├── announce-lts-13.md ├── announce-lts-16-12-ghc-8-8-4.md ├── announce-lts-19-nightly-ghc9.2.md ├── announce-lts-20-nightly-ghc9.4.md ├── announce-lts-21-nightly-ghc9.6.md ├── announce-lts-22-nightly-ghc-9.8.md ├── announce-lts-23-nightly-ghc-9.10.md ├── blog-announcement.md ├── discontinuing-legacy-snapshots.md ├── ghc-8-10-2-windows-workaround.md ├── ignore-version-bounds.md ├── lts-guarantees-exceptions.md ├── new-snapshot-format.md ├── nightly-package-count.md ├── upcoming-lts-12-ghc-8-4-3.md ├── upcoming-lts-13-ghc-8-6-2.md ├── upcoming-lts-14-ghc-8-6-5.md └── upcoming-lts-15-ghc-8-8-2.md ├── spam-packages.yaml ├── stack ├── global-hints.yaml ├── releases.yaml ├── stack-setup-2.yaml ├── stack-setup.yaml └── update-global-hints.hs └── stackage-cli ├── linux64 ├── ghc-7.10-links.yaml └── ghc-7.8-links.yaml └── supported-ghc-major-versions.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014-2018 Stackage team 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | stackage-content 2 | ================ 3 | 4 | Content for the stackage.org site. This contains a combination of: 5 | 6 | * Blog posts from the Stackage Curator team 7 | * Configuration files used by Stack and hosted from stackage.org, such as `stack-setup-2.yaml`, which tells Stack where to download tools like GHC from 8 | * Content for a few static pages on the site 9 | -------------------------------------------------------------------------------- /authors.html: -------------------------------------------------------------------------------- 1 | 27 |
28 |
29 |
30 |

Stackage for Authors

31 |
32 |
33 |

For 34 | package authors 35 | to contribute to Stackage, follow these instructions:

36 | 42 |

If there are any issues building your packages, 43 | one of the Stackage maintainers will contact you 44 | with more information.

45 |
46 |
47 | 48 |

How Stackage Works

49 |
50 |
51 | 52 |
53 |
54 |

Package authors: Open a pull request on the Github repository.

55 |
56 |
57 |
58 |
59 |

Once checked, it's merged and run through Jenkins.

60 |
61 |
62 | 63 |
64 |
65 |
66 |
67 | 68 |
69 |
70 |

Authors are notified on Github if any problems arise with their package.

71 |
72 |
73 |
74 |
75 |

If the build succeeds, a new Stackage snapshot is created.

76 |
77 |
78 | 79 |
80 |
81 |
82 |
83 | 84 |
85 |
86 |

The community can start using the new snapshot immediately!

87 |
88 |
89 |
90 |
91 |
92 | -------------------------------------------------------------------------------- /homepage.html: -------------------------------------------------------------------------------- 1 | 2 | Fork me on GitHub 3 | 4 | 12 |
13 |
14 |
15 |
16 | 17 | 18 | 19 |
20 |
21 |
22 |
23 | 25 | 26 | or browse packages 27 |
28 | 32 |
33 |
34 |
35 |
36 |
37 |

38 | Stackage is a stable source of Haskell packages. We guarantee that 39 | packages build consistently and pass tests before generating nightly and Long Term Support (LTS) 40 | releases. 41 |

42 |
43 |
44 |
45 |
46 |

Users

47 |

48 | You browse the latest long term support 49 | (what 50 | are Long Term Support releases?) release, or the latest 51 | bleeding-edge nightly release. 52 |

53 | 63 |

64 | Stack uses LTS Haskell 65 | and Stackage Nightly out of the box. 66 |

67 |
68 |
69 |

Authors

70 |

For package authors to contribute to Stackage, follow these instructions:

71 |
    72 |
  • Edit the build-constraints.yaml file to add your packages, 73 | following the same format as other contributors
  • 74 |
  • Choose "Create a new branch for this commit"
  • 75 |
  • Click "Propose file change"
  • 76 |
  • If there are any issues building your packages, one of the 77 | Stackage maintainers will contact you with more 78 | information.
  • 79 |
80 |
81 |
82 |
83 |
84 |

Community and support

85 |

86 | You can discuss Stackage 87 | on the 88 | Google group and report issues about Stackage itself here and issues about stackage.org here. 89 |

90 |

91 | There is also #haskell-stack channel on freenode. 92 |

93 |
94 |
95 |

Commercial Haskell

96 |

97 | Stackage is part of an initiative 98 | by the commercial 99 | Haskell group. More information on the architecture of 100 | Stackage can be found here. 101 |

102 |

103 | FP Complete offer custom installations for businesses who 104 | want to build their development platform upon Stackage. If 105 | you're considering this for your business and want to find 106 | out more, please email us at: 107 | sales@fpcomplete.com 108 |

109 |
110 |
111 |
112 |
113 | -------------------------------------------------------------------------------- /install.md: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 | # Install Stack 6 | 7 | The recommended method for getting up and running is to [install 8 | Stack](http://haskellstack.org). As a quick 9 | overview: Stack is a full-featured Haskell build tool that will install 10 | necessary build tools (like the Glasgow Haskell Compiler- GHC), and is 11 | preloaded with support for Stackage snapshots- both LTS Haskell and Stackage 12 | Nightly. 13 | 14 | [Return to Stackage homepage](/) 15 | 16 |
17 |
18 |
19 | -------------------------------------------------------------------------------- /older-releases.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | [Return to Stackage homepage](/) 4 | 5 | ## GHC 7.6 6 | 7 | * [Exclusive](http://www.stackage.org/alias/fpcomplete/unstable-ghc76-exclusive) 8 | * [Inclusive](http://www.stackage.org/alias/fpcomplete/unstable-ghc76-inclusive) 9 | 10 | ## GHC 7.8 + Haskell Platform 11 | 12 | * [Exclusive](http://www.stackage.org/alias/fpcomplete/unstable-ghc78hp-exclusive) 13 | * [Inclusive](http://www.stackage.org/alias/fpcomplete/unstable-ghc78hp-inclusive) 14 | 15 |
16 | -------------------------------------------------------------------------------- /posts/2021-05-29-upcomming-ghc-9-on-nightlies.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Chris Dornan 3 | title: Stackage nightly snapshots to switch to GHC 9.0.1 4 | description: We will be releasing LST-18 and switching nightly to GHC 9 5 | timestamp: 2021-05-29T16:07:00Z 6 | --- 7 | 8 | We have been looking for an opportunity to switch to GHC-9 on our nightly builds and have decided 9 | that GHC-9 has been out long enough and we need to get on with preparing the ecosystem for its 10 | eventual deployment as the Haskell toolchain of choice. To that end, in the coming weeks we will be 11 | 12 | * releasing LTS 18 based on GHC 8.10.4 (or GHC 8.10.5, should it make 13 | an appearance) and 14 | 15 | * switching nightly to GHC 9.0.1 (or GHC 9.0.2 if it is released in time). 16 | 17 | We can expect many packages to be removed from nightly due to build constraints being violated, or 18 | even real API breakage, and we will need your help getting everything back into the new release. 19 | 20 | We have prepared a [ghc-9 branch](https://github.com/commercialhaskell/stackage/pull/6047) which will become the first GHC 9 nightly and encourage you to check the diff to see if any of your packages are subject to removal. If you'd like them to be included in the initial GHC 9 nightly, please file a PR against that branch ([example](https://github.com/commercialhaskell/stackage/pull/6048)) 21 | 22 | Stand by! 23 | -------------------------------------------------------------------------------- /posts/announce-ghc-8-4-on-nightlies.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Dan Burton 3 | title: Announcing stackage nightly snapshots with ghc-8.4.1 4 | description: Announcing stackage nightly snapshots with ghc-8.4.1 5 | timestamp: 2018-03-16T00:01:00Z 6 | --- 7 | 8 | I am pleased to announce that Stackage nightly snapshots now use 9 | ghc-8.4.1. Stack users can simply use `resolver: nightly-2018-03-16` 10 | in a project's stack.yaml file in order to build and test with ghc-8.4.1. 11 | 12 | As is usual when a new ghc is released, many packages were removed 13 | from the nightly snapshot due to version constraints and build failures. 14 | We expect many packages to return quickly to the build plan, and 15 | we hope that the existing snapshots will help mainatainers get back in 16 | by making it easy to build and test their packages. 17 | 18 | Please check to see if your favorite packages are in 19 | [the latest nightly snapshot](https://stackage.org/nightly), 20 | and open up a PR or an issue on https://github.com/fpco/stackage if 21 | you find anything missing which is known to work with ghc-8.4.1. 22 | 23 | As ghc moves to its new 6-month release cycle, I'd like to encourage everyone 24 | to be proactive in bumping bounds and testing packages you rely on 25 | with the new ghc alphas and release candidates as they come out. 26 | Haskell has a remarkable ecosystem; let's strive to make it even better! 27 | -------------------------------------------------------------------------------- /posts/announce-ghc-8.6-on-nightlies.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Mihai Maruseac 3 | title: Announcing stackage nightly snapshots with ghc-8.6.1 4 | description: Announcing stackage nightly snapshots with ghc-8.6.1 5 | timestamp: 2018-09-29T00:01:00Z 6 | --- 7 | 8 | I am pleased to announce that Stackage nightly snapshots now use 9 | ghc-8.6.1. Stack users can simply use `resolver: nightly-2018-09-29` 10 | in a project's `stack.yaml` file in order to build and test with ghc-8.6.1. 11 | 12 | As is usual when a new ghc is released, many packages were removed 13 | from the nightly snapshot due to version constraints and build failures. 14 | We expect many packages to return quickly to the build plan, and 15 | we hope that the existing snapshots will help mainatainers get back in 16 | by making it easy to build and test their packages. 17 | 18 | Please check to see if your favorite packages are in 19 | [the latest nightly snapshot](https://stackage.org/nightly), 20 | and open up a PR or an issue on 21 | [Stackage](https://github.com/commercialhaskell/stackage) if you find anything 22 | missing which is known to work with ghc-8.6.1. 23 | 24 | As ghc moves to its new 6-month release cycle, I'd like to encourage everyone 25 | to be proactive in bumping bounds and testing packages you rely on 26 | with the new ghc alphas and release candidates as they come out. 27 | Haskell has a remarkable ecosystem; let's strive to make it even better! 28 | 29 | -------------------------------------------------------------------------------- /posts/announce-lts-12.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Dan Burton 3 | title: "Announce: Stackage LTS 12 with ghc-8.4.3" 4 | description: "Announce: Stackage LTS 12 with ghc-8.4.3" 5 | timestamp: 2018-07-09T00:01:00Z 6 | --- 7 | 8 | We are pleased to announce the release of 9 | [lts-12.0](https://www.stackage.org/lts-12.0), 10 | the first in a new 11 | [LTS Haskell](https://github.com/commercialhaskell/lts-haskell#readme) 12 | snapshot series, using ghc-8.4.3. 13 | (See: [changes from lts-11.17](https://www.stackage.org/diff/lts-11.17/lts-12.0).) 14 | We thank all of the package authors involved in supporting 15 | the Haskell ecosystem. LTS Haskell would not be possible without you! 16 | 17 | To add your package to future snapshots in the LTS 12 series, 18 | please open a new issue on 19 | [commercialhaskell/lts-haskell](https://github.com/commercialhaskell/lts-haskell). 20 | 21 | As per our usual 22 | [LTS release procedure](https://github.com/commercialhaskell/stackage/blob/master/CURATORS.md#new-lts-major-bump), 23 | we have lifted many constraints from the Stackage nightly build plan. 24 | Various packages were removed in order to accomplish this, 25 | and package authors should have been 26 | notified on the corresponding github issues. 27 | To add (or restore) your package to the Stackage nightly builds, 28 | see [MAINTAINERS.md](https://github.com/commercialhaskell/stackage/blob/master/MAINTAINERS.md#adding-a-package) on the stackage repo. 29 | 30 | It is uncertain at this time whether LTS 13 31 | (anticipated to release in 3 to 5 months) 32 | will use ghc-8.4 or ghc 8.6. 33 | We encourage package authors to make use of the ghc 34 | alpha and rc releases in order to test their packages 35 | and speed up the adoption of new ghc versions. 36 | -------------------------------------------------------------------------------- /posts/announce-lts-13.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Dan Burton 3 | title: "Announce: Stackage LTS 13 with ghc-8.6.3" 4 | description: "Announce: Stackage LTS 13 with ghc-8.6.3" 5 | timestamp: 2018-12-24T00:01:00Z 6 | --- 7 | 8 | We are pleased to announce the release of 9 | [lts-13.0](https://www.stackage.org/lts-13.0), 10 | the first in a new 11 | [LTS Haskell](https://github.com/commercialhaskell/lts-haskell#readme) 12 | snapshot series, using ghc-8.6.3. 13 | (See: [changes from lts-12.25](https://www.stackage.org/diff/lts-12.25/lts-13.0).) 14 | 'Tis always the season to be jolly around here, due to perpetual effort from 15 | the many package maintainers involved in supporting the Haskell ecosystem. 16 | LTS Haskell is made possible by your hard work. Thank you! 17 | 18 | The LTS 13 series can add even more packages with each new snapshot (released weekly). 19 | To add a package to future snapshots in the LTS 13 series, 20 | please open a new issue on 21 | [commercialhaskell/lts-haskell](https://github.com/commercialhaskell/lts-haskell). 22 | 23 | As per our usual 24 | [LTS release procedure](https://github.com/commercialhaskell/stackage/blob/master/CURATORS.md#new-lts-major-bump), 25 | we have lifted many constraints from the Stackage nightly build plan. 26 | Various packages may have been removed in order to accomplish this; 27 | package authors should have been notified on the github issue justifying the removal. 28 | However, we generally look at package removals as temporary. 29 | To add (or restore) your package to the Stackage nightly builds, 30 | see [MAINTAINERS.md](https://github.com/commercialhaskell/stackage/blob/master/MAINTAINERS.md#adding-a-package) 31 | on the stackage repo for instructions and details. 32 | 33 | We continue to encourage package authors to make use of ghc 34 | alpha, beta, and rc releases. Thank you again for your efforts to keep 35 | Haskell's library releases timely and relevant. 36 | -------------------------------------------------------------------------------- /posts/announce-lts-16-12-ghc-8-8-4.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Dan Burton 3 | title: LTS 16 uses ghc-8.8.4 as of LTS 16.12 4 | description: LTS 16 uses ghc-8.8.4 as of LTS 16.12 5 | timestamp: 2020-08-31T12:01:00Z 6 | --- 7 | 8 | LTS 16.12, the latest update to LTS 16, 9 | includes an upgrade from ghc-8.8.3 to ghc-8.8.4. 10 | Windows users are encouraged to upgrade immediately, 11 | as this ghc upgrade contains an important bugfix to process creation on Windows. 12 | 13 | See the 14 | [ghc-8.8.4 release announcement](https://www.haskell.org/ghc/blog/20200715-ghc-8.8.4-released.html) 15 | for details. 16 | -------------------------------------------------------------------------------- /posts/announce-lts-19-nightly-ghc9.2.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Jens Petersen 3 | title: LTS 19 release and Nightly on ghc-9.2 4 | description: Stackage LTS 19 (ghc-9.0.2) has been released and Stackage Nightly moves to ghc-9.2.2. 5 | timestamp: 2022-03-20T05:00:00Z 6 | --- 7 | 8 | The Stackage team is very happy to announce the initial [Stackage LTS version 19](https://www.stackage.org/lts-19.0) snapshot release is now available, based on GHC version 9.0.2. This release is significant for several reasons: 9 | 10 | - not only is it the first stable LTS release based on ghc9, 11 | - it also includes many significant [upgrades](https://www.stackage.org/diff/lts-18.28/lts-19.0), including aeson-2.0 with improved security, and 12 | - it is also the largest stable LTS release we have ever done: just 1 short of 2900 packages! 13 | 14 | Of course it is still possible to get your package added to lts-19, if it builds with lts19 and you missed to get it into Nightly in time for the initial lts-19.0 build: using our straightforward process - just open a github issue in the [lts-haskell](https://github.com/commercialhaskell/lts-haskell/issues) project and following the template there. 15 | 16 | Thank you to the great Haskell community for all the many contributions 17 | you are making - do keep them coming! 18 | 19 | At the same time we are also excited to [move Nightly now to GHC 9.2.2](https://www.stackage.org/nightly-2022-03-19) - enjoy! Apparently there will be a 9.2.3 bugfix release coming, so we will update Nightly to that after it is released. 20 | 21 | Quite a number of Nightly packages had to be [disabled](https://www.stackage.org/diff/nightly-2022-03-17/nightly-2022-03-19) as part of the upgrade to 9.2. This is being tracked in : if you find your package listed there, you can help to update it to build with ghc-9.2 and Stackage Nightly, thank you! 22 | 23 | Help us make the next LTS 20 an even bigger and better release! 24 | -------------------------------------------------------------------------------- /posts/announce-lts-20-nightly-ghc9.4.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Jens Petersen 3 | title: LTS 20 release for ghc-9.2 and Nightly now on ghc-9.4 4 | description: Stackage LTS 20 (ghc-9.2.5) has been released and Stackage Nightly moves to ghc-9.4.3. 5 | timestamp: 2022-11-19T14:00:00Z 6 | --- 7 | 8 | ## Stackage LTS 20 has been released 9 | 10 | The Stackage team is very happy to announce the first [Stackage LTS version 20](https://www.stackage.org/lts-20.0) snapshot has been released this week, based on GHC stable version 9.2.5. 11 | 12 | LTS 20 includes many [package changes](https://www.stackage.org/diff/lts-19.32/lts-20.0), and is the first LTS release with over 3000 packages!! Thank you for all the nightly contributions that made this possible. 13 | 14 | If your package is missing from LTS 20 and builds there, you can easily request to have it added using our straightforward process: just open a github issue in the [lts-haskell](https://github.com/commercialhaskell/lts-haskell/issues) project and following the steps in the template. 15 | 16 | ## Stackage Nightly updated to ghc-9.4.3 17 | 18 | At the same time we are also excited to have moved Stackage [Nightly to GHC 9.4.3](https://www.stackage.org/nightly-2022-11-19) now! 19 | 20 | Almost 500 Nightly packages had to be [disabled](https://www.stackage.org/diff/nightly-2022-11-17/nightly-2022-11-19) as part of the upgrade to 9.4. Please help to update your packages to build with ghc-9.4 and get them back into Stackage Nightly, thank you! 21 | 22 | Big thank you to the community for all your help and support, and do keep the contributions coming! 23 | 24 | (_Note for Linux users of older glibc < 2.32_: at the time of writing stack setups for ghc-9.4 default to the fedora33 bindist which uses glibc-2.32. Some possible workarounds are mentioned in [this issue](https://github.com/commercialhaskell/stack/issues/5881) though the Stackage team has not verified the suggestions.) 25 | -------------------------------------------------------------------------------- /posts/announce-lts-21-nightly-ghc9.6.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Jens Petersen and Andreas Ländle 3 | title: LTS 21 release for ghc-9.4 and Nightly now on ghc-9.6 4 | description: Stackage LTS 21 (ghc-9.4.5) has been released and Stackage Nightly moves to ghc-9.6.2. 5 | timestamp: 2023-06-25T06:00:00Z 6 | --- 7 | 8 | ## Stackage LTS 21 has been released 9 | 10 | The Stackage team is very happy to announce the first [Stackage LTS version 21](https://www.stackage.org/lts-21.0) snapshot has been released this week, based on GHC stable version 9.4.5. 11 | 12 | LTS 21 includes many [package changes](https://www.stackage.org/diff/lts-20.26/lts-21.0), and again has over 3000 packages! 13 | Thank you for all the nightly contributions that made this possible. 14 | (By the way lts-21.0 is basically identical to [nightly-2023-06-20](https://www.stackage.org/nightly-2023-06-20).) 15 | 16 | If your package is missing from LTS 21 and builds there, you can easily request to have it added using our straightforward process: just open a github issue in the [lts-haskell](https://github.com/commercialhaskell/lts-haskell/issues) project and following the simple steps in the template. 17 | 18 | ## Stackage Nightly updated to ghc-9.6.2 19 | 20 | At the same time we are also excited to have moved [Stackage Nightly](https://www.stackage.org/nightly) to GHC 9.6.2: the initial snapshot being [nightly-2023-06-22](https://www.stackage.org/nightly-2023-06-22). Current nightly has over 2470 packages, but we expect that number to continue to grow over the coming days, weeks, and months: we very much welcome your contributions and help with that. 21 | 22 | Apart from the usual bounds issues (we [dropped](https://github.com/commercialhaskell/stackage/pull/7010/files) nearly all our blocking upperbounds on packages), the main breakage reasons for disabling packages relative to lts-21 were: 23 | 24 | - mtl-2.3 no longer re-exporting from Control.Monad etc 25 | - optparse-applicative-0.18 changes to help prettyprinting exports 26 | - unix-2.8 changing the API of openFd. 27 | 28 | Thank you to all those who have already done work updating their packages to ghc-9.6. 29 | 30 | Adding or enabling your package for Nightly is just a simple [pull request](https://github.com/commercialhaskell/stackage/blob/master/MAINTAINERS.md#adding-a-package) to a large yaml file. 31 | 32 | Happy Stackage building! 33 | -------------------------------------------------------------------------------- /posts/announce-lts-22-nightly-ghc-9.8.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Jens Petersen 3 | title: LTS 22 release for ghc-9.6 and Nightly now on ghc-9.8 4 | description: Stackage LTS 22 (ghc-9.6.3) has been released and Stackage Nightly moved to ghc-9.8.1. 5 | timestamp: 2024-01-04T04:00:00Z 6 | --- 7 | 8 | ## Stackage LTS 22 has been released 9 | 10 | The Stackage team is happy to announce that [Stackage LTS version 22](https://www.stackage.org/lts-22.0) was released last month, based on GHC stable version 9.6.3. 11 | 12 | LTS 22 includes many [package changes](https://www.stackage.org/diff/lts-21.25/lts-22.0), and has over 3300 packages! 13 | Thank you for all the nightly contributions that made this release possible: the release was made by Mihai Maruseac. 14 | (The closest nightly snapshot to lts-22.0 is [nightly-2023-12-17](https://www.stackage.org/diff/lts-22.0/nightly-2023-12-17).) 15 | 16 | If your package is missing from LTS 22 and builds there, you can easily request to have it added by (*new*) opening a PR in the [lts-haskell](https://github.com/commercialhaskell/lts-haskell/) project to the [build-constraints/lts-22-build-constraints.yaml](https://github.com/commercialhaskell/lts-haskell/blob/master/build-constraints/lts-22-build-constraints.yaml) file. 17 | The new LTS workflow was implemented by Adam Bergmark and first appeared in [lts-22.1](https://www.stackage.org/lts-22.1): 18 | we are in the process of updating our documentation to cover the new nightly-style workflow for LTS snapshots. 19 | 20 | ## Stackage Nightly updated to ghc-9.8.1 21 | 22 | At the same time we are excited to have moved [Stackage Nightly](https://www.stackage.org/nightly) to GHC 9.8.1: the initial snapshot being [nightly-2023-12-27](https://www.stackage.org/nightly-2023-12-27). Current nightly has over 2400 packages, but we expect that number to continue to grow over the coming days, weeks, and months: we very much welcome your contributions and help with this. 23 | You can see all the [changes](https://www.stackage.org/diff/nightly-2023-12-26/nightly-2023-12-27) made relative to the preceding last 9.6 nightly snapshot. 24 | The initial snapshot was done by Alexey Zabelin and Jens. 25 | 26 | Thank you to all those who have already done work updating their packages to ghc-9.8. 27 | 28 | Adding or enabling your package for Nightly is just a simple [pull request](https://github.com/commercialhaskell/stackage/blob/master/MAINTAINERS.md#adding-a-package) to the large [build-constraints.yaml](https://github.com/commercialhaskell/stackage/blob/master/build-constraints.yaml) file. 29 | 30 | If you have questions you can also ask in the Slack [#stackage channel](https://haskell-foundation.slack.com/archives/C023DF5202X). 31 | 32 | ## New HF server 33 | 34 | We would also like to take this opportunity to thank the Haskell Foundation for providing the new upgraded Stackage build-server (setup by Bryan Richter, along with other stackage.org migration), which has greatly helped our daily work with much increased performance and storage. 35 | -------------------------------------------------------------------------------- /posts/announce-lts-23-nightly-ghc-9.10.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Jens Petersen 3 | title: LTS 23 release for ghc-9.8 and Nightly now on ghc-9.10 4 | description: Stackage LTS 23 (ghc-9.8.4) has been released and Stackage Nightly moved to ghc-9.10.1. 5 | timestamp: 2024-12-12T07:00:00Z 6 | --- 7 | 8 | ## Stackage LTS 23 has been released 9 | 10 | The Stackage team is happy to announce that [Stackage LTS version 23](https://www.stackage.org/lts-23.0) has finally been released a couple of days ago, based on GHC stable version 9.8.4. It follows on from the LTS 22 series which was the longest lived LTS major release to date (with probable final snapshot lts-22.43). 11 | 12 | *We are dedicating the LTS 23 release to the memory of Chris Dornan, who left this world suddenly and unexceptedly around the end of May. We are indebted to Christopher for his many years of wide Haskell community service, including also being one of the Stackage Curators up until the time he passed away. He is warmly remembered.* 13 | 14 | LTS 23 includes many [package changes](https://www.stackage.org/diff/lts-22.43/lts-23.0), and almost 3200 packages! 15 | Thank you for all your nightly contributions that made this release possible: the initial release was prepared by Jens Petersen. 16 | (The closest nightly snapshot to lts-23.0 is [nightly-2024-12-09](https://www.stackage.org/diff/nightly-2024-12-09/lts-23.0), but lts-23 is just ahead of it with pandoc-3.6.) 17 | 18 | If your package is missing from LTS 23 and can build there, you can easily have it added by opening a PR in [lts-haskell](https://github.com/commercialhaskell/lts-haskell/) to the [build-constraints/lts-23-build-constraints.yaml](https://github.com/commercialhaskell/lts-haskell/blob/master/build-constraints/lts-23-build-constraints.yaml) file. 19 | 20 | ## Stackage Nightly updated to ghc-9.10.1 21 | 22 | At the same time we are excited to move [Stackage Nightly](https://www.stackage.org/nightly) to GHC 9.10.1: the initial snapshot release is [nightly-2024-12-11](https://www.stackage.org/nightly-2024-12-11). Current nightly has over 2800 packages, and we expect that number to grow over the coming weeks and months: we welcome your contributions and help with this. 23 | This initial release build was made by Jens Petersen (64 commits). 24 | 25 | Most of our upperbounds were dropped for this rebase so quite a lot of packages had to be disabled. 26 | You can see all the [changes](https://www.stackage.org/diff/nightly-2024-12-09/nightly-2024-12-11) made relative to the preceding last 9.8 nightly snapshot. 27 | Apart from trying to build yourself, the easiest way to understand why particular packages are disabled is to look for their `< 0` lines in [build-constraints.yaml](https://github.com/commercialhaskell/stackage/blob/master/build-constraints.yaml), particularly under the `"Library and exe bounds failures"` section. 28 | We also have some [tracking issues](https://github.com/commercialhaskell/stackage/issues?q=is%3Aissue+is%3Aopen+label%3Aghc-9.10) still open related to 9.10 core boot libraries. 29 | 30 | Thank you to all those who have already done work updating their packages for ghc-9.10. 31 | 32 | Adding or enabling your package for Nightly is just a simple [pull request](https://github.com/commercialhaskell/stackage/blob/master/MAINTAINERS.md#adding-a-package) to the large [build-constraints.yaml](https://github.com/commercialhaskell/stackage/blob/master/build-constraints.yaml) file. 33 | 34 | If you have questions, you can ask in Stack and Stackage Matrix room (`#haskell-stack:matrix.org`) or Slack [channel](https://haskell-foundation.slack.com/archives/C023DF5202X). 35 | -------------------------------------------------------------------------------- /posts/blog-announcement.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Michael Snoyman 3 | title: Announcing the new Stackage blog 4 | description: Announcing the new Stackage blog 5 | timestamp: 2018-01-28T11:25:00Z 6 | --- 7 | 8 | I'm happy to announce that the 9 | [Stackage Curator team](https://github.com/fpco/stackage/blob/master/CURATORS.md) 10 | is beginning a new blog. Until now, messages from the team have come 11 | via our own personal blogs. From now on, our intention is to share 12 | news and plans for changes to Stackage via this blog. 13 | 14 | In addition to this broadcast mechanism, we intend to standardize 15 | means of communicating back with the curator team, and for reaching 16 | consensus on changes to the project. We'll be discussing those ideas 17 | on this blog in the near future. 18 | -------------------------------------------------------------------------------- /posts/discontinuing-legacy-snapshots.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Michael Snoyman 3 | title: Discontinuing legacy snapshots 4 | description: "We are no longer going to be producing the legacy, pre-Pantry snapshot files." 5 | timestamp: 2020-02-05T03:41:03Z 6 | --- 7 | Seven months ago, we [announced a new Stackage snapshot format](https://www.stackage.org/blog/2019/07/new-snapshot-format) based on the work in Pantry. This snapshot format provides a number of advantages over the previous format: 8 | 9 | * It's smaller, leading to less bandwidth usage 10 | * It provides for more download checks by including pantry trees 11 | * With the advent of Casa, it allows for even more help with download caching, mirroring, and behind-the-firewall 12 | * It's consistent with Stack's existing custom snapshot format 13 | * It allows for packages to be specified outside of Hackage, such as arbitrary tarballs 14 | 15 | For the past seven months, we've been generating new snapshots in the new format, and running a job to convert snapshots to the legacy format. This allows tools that have not yet updated to continue using newer snapshots. 16 | 17 | As we mentioned at announcement, though, we wouldn't be continuing that conversion indefinitely. Today, we're announcing that within the next two weeks (likely sooner), we'll be turning off that job. It's never been automated correctly, has taken some work, and prevents us from using outside-of-Hackage packages. 18 | 19 | Our plan is to continue converting LTS 14 files to the legacy format, but on the cut-off date suspend nightly legacy files, and never convert LTS 15 files to the legacy format at all. 20 | 21 | ## How this affects me 22 | 23 | All currently existing snapshot files will remain. If you're using Stack 1.9 and an existing LTS or Nightly snapshot, that combination will continue to work indefinitely. However, you will not be able to use Stack 1.9 or earlier with newer nightly or LTS 15 snapshots. Additionally, the `stack new` and `stack init` features with older Stack versions will begin to fail without being explicitly told which snapshot to use. 24 | 25 | At the time of writing, I don't know if other downstream projects of Stackage have migrated to the new snapshot file format. If they have, users of those tools will experience no impact. Otherwise, they will not be able to use new snapshots until converting over. 26 | -------------------------------------------------------------------------------- /posts/ghc-8-10-2-windows-workaround.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Alexey Zabelin 3 | title: Switching nightlies to GHC 8.10.2 and a workaround for Windows 4 | description: GHC 8.10.2 is currently broken on Windows, here's a workaround you can use until 8.10.3 is out 5 | timestamp: 2020-08-15T12:01:00Z 6 | --- 7 | 8 | The nightly builds are now using GHC 8.10.2 which is 9 | [known to be broken on Windows](https://gitlab.haskell.org/ghc/ghc/-/issues/18550). 10 | This bug [should be fixed](https://gitlab.haskell.org/ghc/ghc/-/issues/18550#note_293049) in GHC 8.10.3. 11 | 12 | To help alleviate some of the problems related to this we wanted to mention a 13 | workaround you can use until GHC 8.10.3 comes out. 14 | 15 | ``` 16 | Javier Neira @jneira · 5 days ago 17 | 18 | A direct workaround would be to change in X:\path\to\ghc-8.10.2\lib\settings: 19 | 20 | ("Merge objects command", " C:/GitLabRunner/builds/2WeHDSFP/0/ghc/ghc/inplace/mingw/bin/ld.exe") 21 | 22 | with 23 | 24 | ("Merge objects command", "X:/path/to/ghc-8.10.2/mingw/bin/ld.exe") 25 | ``` 26 | 27 | [source](https://gitlab.haskell.org/ghc/ghc/-/issues/18550#note_293297) 28 | 29 | Thanks to @mpilgrem for linking the workaround and suggesting we write this blog post! 30 | -------------------------------------------------------------------------------- /posts/ignore-version-bounds.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Michael Snoyman 3 | title: Should Stackage ignore version bounds? 4 | description: Today, Stackage respects version bounds in cabal files. But there's a strong argument to be made that this is an incorrect decision. 5 | timestamp: 2018-01-30T03:26:00Z 6 | --- 7 | 8 | __NOTE__ The curator team is requesting feedback from the community on this 9 | post. If you have thoughts you'd like to share, please add them to the official 10 | Github discussion issue for this topic: [issue 11 | #3241](https://github.com/fpco/stackage/issues/3241). 12 | 13 | As it stands today, __Stackage respects version bounds__. This means 14 | that, if `foo-1.0.0` is included in a snapshot, and its cabal file 15 | says `build-depends: bar >= 1.0 && < 1.1`, that snapshot cannot 16 | include `bar-1.1`. The vast majority of issues open on the Stackage 17 | issue tracker are related to restrictive upper bounds preventing new 18 | versions of dependencies into Stackage. 19 | 20 | The question has recently been asked in a few places: __why does 21 | Stackage respect version bounds?__ It makes perfect sense for a 22 | dependency solver to use version bounds to guide its selection process 23 | for constructing a build plan. But Stackage is a curated build 24 | process. We should be able to build a snapshot, run the test suites, 25 | and then say that, despite the package's claims to the contrary, two 26 | versions of a package are in fact compatible. 27 | 28 | Such a decision by Stackage would have a theoretically positive impact 29 | on the ecosystem. 30 | 31 | * Stackage could more easily upgrade to new versions of dependencies, 32 | and only hold back packages when actual incompatibility is detected. 33 | * This would reduce friction amongst package authors, and reduce 34 | curator efforts. 35 | * The bounds in cabal files could be treated as being important only 36 | to cabal-install in the dependency solving case. 37 | * Authors who follow the PVP would have less busywork to do regarding 38 | version bound relaxations. 39 | * Stackage could entirely ignore Hackage's cabal file revisions, 40 | removing a source of tension (see the 41 | [Uncurated Hackage Layer](https://github.com/haskell/ecosystem-proposals/pull/6) 42 | proposal). 43 | 44 | I believe these are the general arguments people have as to why 45 | Stackage should ignore version bounds. If people have other reasons I 46 | haven't mentioned here, please bring them up. I want to explain some 47 | motivations for Stackage to continue respecting version bounds, and 48 | then open up a community wide discussion on what the best path forward 49 | is for the project. 50 | 51 | ## Hard versus soft bounds 52 | 53 | When you see `bar >= 1.0 && < 1.1` in a cabal file, it can mean one of two things: 54 | 55 | * This package is known to be incompatible with `bar-1.1` 56 | * This package is not known to be compatible with `bar-1.1` 57 | 58 | This has come to be known as hard versus soft bounds respectively, 59 | which are currently not representable in cabal metadata. (There is 60 | talk of the new `^>=` operator being used for this purpose, but its 61 | current semantics in the code for Cabal and the documentation is 62 | indistinguishable from the preexisting `>=` and `<` operators. For 63 | more information, see 64 | [Stack issue #3464](https://github.com/commercialhaskell/stack/issues/3464).) 65 | In the case of soft bounds, it makes all the sense in the world for 66 | Stackage to ignore such bounds, and leave them as a 67 | dependency-solving-only concern. 68 | 69 | However, hard bounds _do_ exist, and can be used to avoid known build 70 | failures. In the world today where hard and soft bounds are 71 | indistinguishable, choosing to ignore bounds means ignoring _all_ 72 | bounds, including known hard bounds. This will result in build 73 | failures on the Stackage build server, and resulting error reports, 74 | with the following problems: 75 | 76 | * Package authors may be rightfully confused, and even annoyed, at 77 | receiving bug reports for build failures _they told us would 78 | happen_. Is it really fair to subject an author to a build failure 79 | message for incompatibility with `bar-1.1` if they told us in the 80 | cabal file that they don't support it? 81 | * Counterpoint: it could be considered _highly useful information_ 82 | to have these error reports generated, allowing casual users to 83 | see incompatibilities with new versions of packages, and perhaps 84 | send PRs to fix them. 85 | * This can waste Stackage Curator time. Instead of getting a version 86 | bound report and adding a temporary upper bound, us curators will 87 | now need to let the build server try to build the package, discover 88 | that it fails, determine which changed dependency caused the 89 | failure, and then add an upper bound. Counterpoints: 90 | * In my experience, many cases of restrictive upper bounds require 91 | no code changes, so the time lost on tracking down the breakage 92 | here can be saved in not having to file frivolous upper bounds 93 | reports. 94 | * This problem already exists, from authors not following the 95 | PVP. Again, in my experience, the cost has not been particularly 96 | high. 97 | 98 | But a much greater issue is that of _semantic breaking changes_. With 99 | API changes which cause build breakage, we're basically moving around 100 | when detection occurs. But the build failure will _always_ be 101 | detected. If a library introduces a breaking semantic change, there is 102 | no guarantee that the Stackage build process will catch it. Ideally, 103 | such runtime behavior will be tested by a test suite, but there is no 104 | way to guarantee that. 105 | 106 | On the other hand: in practice, I don't think this situation arises 107 | often, and I don't think people are particularly good about noticing 108 | these semantic changes and using bounds to inform of them. In other 109 | words, packages that don't have comprehensive test suites won't be 110 | affected by this change, and packages without comprehensive test 111 | suites will likely fall prey to this problem regardless. 112 | 113 | ## Harder Stackage integration story 114 | 115 | Stackage was originally designed to be used by cabal-install via the 116 | `cabal.config` file. Stack has direct support for Stackage 117 | snapshots. To my knowledge, Nix has relatively direct support as 118 | well. There are issues with integration due to Hackage revisions (see, 119 | e.g., 120 | [Stackage issue #3126](https://github.com/fpco/stackage/issues/3126)), 121 | but things work relatively well. 122 | 123 | If we stop respecting version bounds, we will end up with snapshots 124 | regularly which have conflicting version bounds, leading to an extreme 125 | version of issue #3126. Stack is (I believe) already designed to trust 126 | a snapshot's statement about package versions, and ignore any version 127 | conflicts. The same cannot be said of cabal-install and Nix, which I 128 | believe would need to turn on some kind of flag for ignoring version 129 | bounds. 130 | 131 | More generally: by ignoring an entire aspect of the Cabal build 132 | system, we're increasing the likelihood of incompatibility with other 133 | tooling. 134 | 135 | ## Non-version bounds metadata revisions 136 | 137 | One aspect mentions above is the ability to entirely ignore Hackage 138 | revisions. That's not a hard requirement for this proposal. But if we 139 | did so, we would need to deal with non-version bounds revisions. While 140 | most Hackage revisions revolve around relaxing or tightening version 141 | bounds, other edits are allowed, like modifying the description field, 142 | or adding custom-setup stanzas. If we ignore these revisions, we'll 143 | end up in a situation where: 144 | 145 | * Metadata on Stackage may be confusingly different from that 146 | displayed on Hackage 147 | * Broken builds that have been fixed via Hackage revisions (such as by 148 | adding a custom-setup stanza) will still be broken for Stackage, 149 | resulting in spurious error reports to authors and the same 150 | confusion/annoyance mentioned above 151 | 152 | ## Negative impacts on cabal-install users 153 | 154 | For the first year or so of its existence, Stackage was viewed by many 155 | as "CI for Hackage." It detected build errors and version conflicts 156 | quickly and reported them to authors. While very few people directly 157 | used Stackage snapshots in those days, and no one used Stack (because 158 | it didn't exist), the positive impacts of Stackage were felt by many, 159 | directly or indirectly. 160 | 161 | We would be undoing some part of that with this change. Authors would 162 | feel no pressure from Stackage to keep their version bounds as relaxed 163 | as possible. For authors not following the PVP, this would likely have 164 | no negative impact. Somewhat ironically, for the case of an author who 165 | follows the PVP, however, pressure from the Stackage side would no 166 | longer exist to relax upper bounds. The Hackage build matrix would 167 | still consider the build in the green (because it would be a "build 168 | plan not found" situation), but ultimately dependency solver users 169 | would find diminished successful plans. 170 | 171 | On the other hand, Stackage would still do a good job of notifying 172 | authors of actual build breakages, and in fact would notify them of 173 | those brekages sooner rather than later. 174 | 175 | ## Tweak: respect lower bounds, ignore upper bounds 176 | 177 | Adam Bergmark (another Stackage Curator), upon review, noted that lower bounds 178 | are almost always known breakages, changing the trade-offs noted above. A 179 | slight tweak to this proposal would be to ignore upper bounds, but respect any 180 | lower bounds stated. 181 | -------------------------------------------------------------------------------- /posts/lts-guarantees-exceptions.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Michael Snoyman 3 | title: LTS Guarantees and Exceptions 4 | description: A proposal for slight tweaks to the LTS guarantees and exceptions 5 | timestamp: 2018-04-15T07:35:00Z 6 | --- 7 | 8 | I've written up a PR 9 | [slightly tweaking the LTS guarantees and exceptions](https://github.com/fpco/stackage/pull/3526). I 10 | encourage those interested to comment on the PR itself, and/or use the 11 | +1/-1 buttons on the PR description. I'll include the text I'm 12 | suggesting we add to the `MAINTAINERS.md` document here. Note that the 13 | PR may be updated based on feedback, so it's best to read the PR 14 | itself! 15 | 16 | * * * 17 | 18 | ## LTS package guarantees and exceptions 19 | 20 | In general, we try to stick to some rules when it comes to the 21 | packages included in LTS minor bumps. In particular: 22 | 23 | * If a package exists in LTS-X.Y, it should also exist in LTS-X.(Y+1) 24 | * We should not include a major version bump of a package between 25 | LTS-X.Y and LTS-X.(Y+1) 26 | 27 | However, there are some cases where exceptions may be made, based 28 | purely on Stackage Curator discretion. The most common examples are: 29 | 30 | * If a package does not follow the PVP in its version number policy, 31 | applying the standard version bump rules would not necessarily 32 | makes sense. As an example, suppose package `foo` decides to 33 | follow SemVer instead of the PVP. By our standard rules of version 34 | bumps, a change from `foo-1.2.0` to `foo-1.3.0` would be 35 | considered a major version bump, and disallowed in an LTS minor 36 | version bump. However, if a package is following SemVer, this 37 | would not be a breaking change, and curators may elect to include 38 | it. 39 | 40 | * If a package has overly restrictive version bounds on a 41 | dependency, in particular constraining a minor version 42 | unnecessarily, we may drop that package instead of artificially 43 | holding back the dependency. As an example: suppose `LTS-20.1` 44 | includes `foo-1.2.0` and `bar-1`. `bar-1` has a dependency `foo >= 45 | 1.2.0 && < 1.2.1`, which is overly constrained on the minor 46 | version number according to the PVP. Then `foo-1.2.1` is 47 | released. The Stackage Curator team would have two choices: 48 | 49 | * Reject `foo-1.2.1` from `LTS-20.2`, since that is what `bar-1` 50 | requires. 51 | * Drop `bar-1` from `LTS-20.2`, and allow `foo-1.2.1`. 52 | 53 | Decisions will need to be taken on a case-by-case basis, and may 54 | depend on such issues as whether an important bugfix or security 55 | update in included. The curator team may also try to notify the 56 | author of `bar` to try and get a patched version released. 57 | -------------------------------------------------------------------------------- /posts/new-snapshot-format.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Michael Snoyman 3 | title: New Stackage snapshot format 4 | description: "We've been making some changes to how we build Stackage snapshots, and the file format used. This post covers those changes, and what's coming next." 5 | timestamp: 2019-07-04T08:24:47Z 6 | --- 7 | 8 | I've been blogging off and on about [Pantry](https://www.stackage.org/package/pantry-tmp) and how it affects both Stack and Stackage. There have been a number of Github issues lying around about changes to how we'll build Stackage snapshots. Most of those changes have landed, and it's worth recapping the problems we were trying to solve, how things used to work, how they work now, and what's left. 9 | 10 | ## Old build process overview 11 | 12 | The [`stackage`](https://github.com/commercialhaskell/stackage/) repo has a [`build-constraints.yaml`](https://github.com/commercialhaskell/stackage/blob/master/build-constraints.yaml) file, which specifies which packages should be included in the next nightly, which tests are expected to fail, upper bounds, etc. The file is where most people interact with the Stackage project, where pull requests land, and where the Stackage Curator team applies changes. 13 | 14 | The [`stackage-curator`](https://github.com/fpco/stackage-curator/) tool is used on Travis CI to put together the constraints file with the current state of Hackage to come up with a snapshot, and then check to make sure all of the bounds on that snapshot are valid. When you get an issue from someone on the Curator team reporting bounds failures, it's a report from `stackage-curator`. 15 | 16 | We run a build server that rebuilds nightly snapshots on a regular basis. It uses the `stackage-curator` tool as well to create the snapshot definition, perform the build, run tests, upload Haddocks to Amazon S3, and commit the new snapshot file to the [`stackage-nightly`](https://github.com/commercialhaskell/stackage-nightly/) repo. If there are build failures, the Stackage Curator team reports on them and adds more constraints to work around them. 17 | 18 | LTS snapshots are basically the same thing, except for an LTS minor version bump, the constraints come from the previous snapshot (e.g., `lts-13.22` is based on the constraints implicit in `lts-13.21`), and the snapshots are committed to the [`lts-haskell`](https://github.com/commercialhaskell/lts-haskell/) repo. 19 | 20 | Finally, [Stackage Server](https://github.com/fpco/stackage-server/) (a.k.a. [stackage.org](https://www.stackage.org/)) takes information from `stackage-nightly`, `lts-haskell`, and the uploaded docs on S3 to provide everything it does: lists of snapshots, packages, Haddocks, and Hoogle search. 21 | 22 | ## Problems 23 | 24 | * `stackage-curator` implements its own Cabal package building logic by working directly with Cabal-the-library. There's a lot of feature overlap with Stack, and different behavior in some corner cases. 25 | * The original Stackage file format used in `stackage-nightly` and `lts-haskell` is unique from the "custom snapshot" format that Stack supports, for only historical reasons. 26 | * The snapshot format is _big_. It contains a lot of information about module names, constraints, users, etc, that build tools don't need. 27 | * While there is cryptographic hash information on cabal files to deal with Hackage Revisions, there is no cryptographic hash information on the package tarball contents themselves. 28 | 29 | ## Changes 30 | 31 | * We're scrapping the previous `stackage-curator` tool entirely. 32 | * There's a brand new [`curator` tool](https://github.com/commercialhaskell/stack/tree/master/subs/curator), which uses the same snapshot format as Stack 2, Pantry, and what was previously known as custom snapshots. 33 | * This curator tool still does bounds checking, and is now included in Travis CI. However, this tool does _not_ build packages. It shells out to Stack to do that instead. That makes this tool _much_ simpler. 34 | * __Important end user consideration__: the old tool would automatically add dependencies of packages to a snapshot. After some discussion and lots of requests around this, __all packages to be included in a snapshot must appear explicitly in `build-constraints.yaml`__. Some people have already gotten reports about this, which is what initially spurred this blog post. 35 | * New snapshots are landing in the [`stackage-snapshots`](https://github.com/commercialhaskell/stackage-snapshots/) repo. 36 | * For backwards compatibility, we currently convert snapshots to the original format in the original repos, so `stackage-nightly` and `lts-haskell` are still being populated. This will not continue indefinitely, we do not have a timeframe on when we will discontinue this. 37 | 38 | ## Current status 39 | 40 | We've moved over Nightly builds completely to the new tool. We have not yet moved LTS Haskell over. Due to differences in how constraints are tracked, we're going to make the switchover when we release LTS 14. We'll put out a separate post about LTS 14 fairly soon. 41 | 42 | ## Takeaways 43 | 44 | The two most important takeaways for most people are: 45 | 46 | 1. If you depend on a package that's not present in Stackage, you'll need to add that package to Stackage to get your package included. 47 | 2. If you're writing tooling that uses the snapshot files, you should check out `stackage-snapshots` and the `pantry` library. 48 | -------------------------------------------------------------------------------- /posts/nightly-package-count.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Adam Bergmark 3 | title: Stackage Nightly Package Count over Time 4 | description: A chart showing the number of packages available in Stackage nightly from 2015 through 2021. 5 | timestamp: 2021-12-27T00:27:00Z 6 | --- 7 | 8 | #![Packages in Stackage Nightly](https://i.imgur.com/rYFJfyB.png) 9 | -------------------------------------------------------------------------------- /posts/upcoming-lts-12-ghc-8-4-3.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Alexey Zabelin 3 | title: Upcoming stackage LTS 12 snapshot with ghc-8.4.3 4 | description: Upcoming stackage LTS 12 snapshot with ghc-8.4.3 5 | timestamp: 2018-06-17T00:01:00Z 6 | --- 7 | 8 | After a [recent discussion](https://mail.haskell.org/pipermail/haskell-cafe/2018-June/129259.html) 9 | on the Haskell-cafe mailing list, the stackage curator team has decided 10 | to start the preparations for an LTS major bump which will include 11 | ghc-8.4.3. 12 | 13 | We'd like to give everyone enough time to prepare, which is why the 14 | planned release date is **two weeks** from the date of this post. 15 | 16 | Getting your package into the nightly snapshot will ensure its inclusion 17 | in LTS 12 as well. To add your package, please submit a PR to 18 | [commercialhaskell/stackage](https://github.com/commercialhaskell/stackage). 19 | To add your package to LTS 12 after it's released, please open a new issue 20 | on [commercialhaskell/lts-haskell](https://github.com/commercialhaskell/lts-haskell). 21 | 22 | For those interested, here's an [overview](https://github.com/commercialhaskell/stackage/blob/master/CURATORS.md#new-lts-major-bump) 23 | of the LTS major bump process we'll be adhering to from now on. 24 | -------------------------------------------------------------------------------- /posts/upcoming-lts-13-ghc-8-6-2.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Dan Burton 3 | title: Upcoming stackage LTS 13 snapshot with ghc-8.6.2 4 | description: Upcoming stackage LTS 13 snapshot with ghc-8.6.2 5 | timestamp: 2018-11-20T00:01:00Z 6 | --- 7 | 8 | The stackage curator team has started preparations for an LTS major bump 9 | which will include ghc-8.6.2. 10 | 11 | To give everyone some time to prepare, we are announcing the planned release date 12 | as approximately **two to four weeks** from the date of this post. 13 | 14 | Getting your package into the nightly snapshot will ensure its inclusion 15 | in LTS 13 as well. To add your package, please submit a PR to 16 | [commercialhaskell/stackage](https://github.com/commercialhaskell/stackage). 17 | To add your package to LTS 13 after it's released, please open a new issue 18 | on [commercialhaskell/lts-haskell](https://github.com/commercialhaskell/lts-haskell). 19 | Please feel free to contact the stackage curators with any questions you may have 20 | via the [stackage mailing list](https://groups.google.com/forum/#!forum/stackage), 21 | or the [stackage gitter chat](https://gitter.im/commercialhaskell/stackage). 22 | 23 | For more insight into how stackage curators handle these sorts of things, see: 24 | [the LTS major bump process](https://github.com/commercialhaskell/stackage/blob/master/CURATORS.md#new-lts-major-bump). 25 | -------------------------------------------------------------------------------- /posts/upcoming-lts-14-ghc-8-6-5.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Michael Snoyman 3 | title: Upcoming stackage LTS 14 snapshot with ghc-8.6.5 4 | description: Upcoming stackage LTS 14 snapshot with ghc-8.6.5 5 | timestamp: 2019-07-15T12:01:00Z 6 | --- 7 | 8 | The stackage curator team has started preparations for an LTS major 9 | bump which will include ghc-8.6.5. This is _not a change_ in GHC 10 | version number from the current LTS 13 series. In addition to allowing 11 | new, breaking changes of packages into an LTS release, this LTS 14 12 | will be the first LTS using the [new curator 13 | tool](https://www.stackage.org/blog/2019/07/new-snapshot-format). 14 | 15 | To give everyone some time to prepare, we are announcing the planned release date 16 | as approximately **two to four weeks** from the date of this post. 17 | 18 | Getting your package into the nightly snapshot will ensure its inclusion 19 | in LTS 14 as well. To add your package, please submit a PR to 20 | [commercialhaskell/stackage](https://github.com/commercialhaskell/stackage). 21 | To add your package to LTS 14 after it's released, please open a new issue 22 | on [commercialhaskell/lts-haskell](https://github.com/commercialhaskell/lts-haskell). 23 | Please feel free to contact the stackage curators with any questions you may have 24 | via the [stackage mailing list](https://groups.google.com/forum/#!forum/stackage), 25 | or the [stackage gitter chat](https://gitter.im/commercialhaskell/stackage). 26 | 27 | For more insight into how stackage curators handle these sorts of things, see: 28 | [the LTS major bump process](https://github.com/commercialhaskell/stackage/blob/master/CURATORS.md#new-lts-major-bump). 29 | -------------------------------------------------------------------------------- /posts/upcoming-lts-15-ghc-8-8-2.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: Mihai Maruseac 3 | title: Upcoming stackage LTS 15 snapshot with ghc-8.8.2 4 | description: Upcoming stackage LTS 15 snapshot with ghc-8.8.2 5 | timestamp: 2020-02-10T12:01:00Z 6 | --- 7 | 8 | The stackage curator team has started preparations for an LTS major 9 | bump which will include ghc-8.8.2. 10 | 11 | In addition to allowing new, breaking changes of packages into an LTS release, 12 | this LTS 15 will [discontinue the legacy format for snapshots] 13 | (https://www.stackage.org/blog/2020/02/discontinuing-legacy-snapshots). 14 | 15 | To give everyone some time to prepare, we are announcing the planned release date 16 | as approximately **one week** from the date of this post. 17 | 18 | Getting your package into the nightly snapshot will ensure its inclusion 19 | in LTS 15 as well. To add your package, please submit a PR to 20 | [commercialhaskell/stackage](https://github.com/commercialhaskell/stackage). 21 | To add your package to LTS 15 after it's released, please open a new issue 22 | on [commercialhaskell/lts-haskell](https://github.com/commercialhaskell/lts-haskell). 23 | Please feel free to contact the stackage curators with any questions you may have 24 | via the [stackage mailing list](https://groups.google.com/forum/#!forum/stackage), 25 | or the [stackage gitter chat](https://gitter.im/commercialhaskell/stackage). 26 | 27 | For more insight into how stackage curators handle these sorts of things, see: 28 | [the LTS major bump process](https://github.com/commercialhaskell/stackage/blob/master/CURATORS.md#new-lts-major-bump). 29 | -------------------------------------------------------------------------------- /spam-packages.yaml: -------------------------------------------------------------------------------- 1 | # Some spammers have started uploaded bogus packages to Hackage as spam. In 2 | # order to reduce these incentives, we will not display such packages on 3 | # stackage.org. If you believe a package should be added (or removed) from this 4 | # list, please send a PR to this file. 5 | - Facebook-Password-Hacker-Online-Latest-Version 6 | - Clash-Royale-Hack-Cheats 7 | - Mobile-Legends-Hack-Cheats 8 | - Fortnite-Hack-Cheats-Free-V-Bucks-Generator 9 | - f-ree-hack-cheats-free-v-bucks-generator 10 | -------------------------------------------------------------------------------- /stack/global-hints.yaml: -------------------------------------------------------------------------------- 1 | # Packages found in the global package database for each GHC version. 2 | # Used by post-pantry Stack (merged to master August 2018). 3 | # This file auto-generated by update-global-hints.hs. 4 | # Please ensure this is updated when a new version of GHC is released. 5 | 6 | ghc-7.8.3: 7 | ghc: 7.8.3 8 | hoopl: 3.10.0.1 9 | bytestring: 0.10.4.0 10 | unix: 2.7.0.1 11 | haskeline: 0.7.1.2 12 | Cabal: 1.18.1.3 13 | base: 4.7.0.1 14 | time: 1.4.2 15 | xhtml: 3000.2.1 16 | haskell98: 2.0.0.3 17 | hpc: 0.6.0.1 18 | filepath: 1.3.0.2 19 | process: 1.2.0.0 20 | array: 0.5.0.0 21 | Win32: 2.3.0.1 22 | integer-gmp: 0.5.1.0 23 | bin-package-db: 0.0.0.0 24 | containers: 0.5.5.1 25 | haskell2010: 1.1.2.0 26 | binary: 0.7.1.0 27 | ghc-prim: 0.3.1.0 28 | old-time: 1.1.0.2 29 | old-locale: 1.0.0.6 30 | rts: '1.0' 31 | terminfo: 0.4.0.0 32 | transformers: 0.3.0.0 33 | deepseq: 1.3.0.2 34 | pretty: 1.1.1.1 35 | template-haskell: 2.9.0.0 36 | directory: 1.2.1.0 37 | ghc-7.8.4: 38 | ghc: 7.8.4 39 | hoopl: 3.10.0.1 40 | bytestring: 0.10.4.0 41 | unix: 2.7.0.1 42 | haskeline: 0.7.1.2 43 | Cabal: 1.18.1.5 44 | base: 4.7.0.2 45 | time: 1.4.2 46 | xhtml: 3000.2.1 47 | haskell98: 2.0.0.3 48 | hpc: 0.6.0.1 49 | filepath: 1.3.0.2 50 | process: 1.2.0.0 51 | array: 0.5.0.0 52 | Win32: 2.3.0.1 53 | integer-gmp: 0.5.1.0 54 | bin-package-db: 0.0.0.0 55 | containers: 0.5.5.1 56 | haskell2010: 1.1.2.0 57 | binary: 0.7.1.0 58 | ghc-prim: 0.3.1.0 59 | old-time: 1.1.0.2 60 | old-locale: 1.0.0.6 61 | rts: '1.0' 62 | terminfo: 0.4.0.0 63 | transformers: 0.3.0.0 64 | deepseq: 1.3.0.2 65 | pretty: 1.1.1.1 66 | template-haskell: 2.9.0.0 67 | directory: 1.2.1.0 68 | ghc-7.10.1: 69 | ghc: 7.10.1 70 | hoopl: 3.10.0.2 71 | bytestring: 0.10.6.0 72 | unix: 2.7.1.0 73 | haskeline: 0.7.2.1 74 | Cabal: 1.22.2.0 75 | base: 4.8.0.0 76 | time: 1.5.0.1 77 | xhtml: 3000.2.1 78 | hpc: 0.6.0.2 79 | filepath: 1.4.0.0 80 | process: 1.2.3.0 81 | array: 0.5.1.0 82 | Win32: 2.3.1.0 83 | integer-gmp: 1.0.0.0 84 | bin-package-db: 0.0.0.0 85 | containers: 0.5.6.2 86 | binary: 0.7.3.0 87 | ghc-prim: 0.4.0.0 88 | rts: '1.0' 89 | terminfo: 0.4.0.1 90 | transformers: 0.4.2.0 91 | deepseq: 1.4.1.1 92 | pretty: 1.1.2.0 93 | template-haskell: 2.10.0.0 94 | directory: 1.2.2.0 95 | ghc-7.10.2: 96 | ghc: 7.10.2 97 | hoopl: 3.10.0.2 98 | bytestring: 0.10.6.0 99 | unix: 2.7.1.0 100 | haskeline: 0.7.2.1 101 | Cabal: 1.22.4.0 102 | base: 4.8.1.0 103 | time: 1.5.0.1 104 | xhtml: 3000.2.1 105 | hpc: 0.6.0.2 106 | filepath: 1.4.0.0 107 | process: 1.2.3.0 108 | array: 0.5.1.0 109 | Win32: 2.3.1.0 110 | integer-gmp: 1.0.0.0 111 | bin-package-db: 0.0.0.0 112 | containers: 0.5.6.2 113 | binary: 0.7.5.0 114 | ghc-prim: 0.4.0.0 115 | rts: '1.0' 116 | terminfo: 0.4.0.1 117 | transformers: 0.4.2.0 118 | deepseq: 1.4.1.1 119 | pretty: 1.1.2.0 120 | template-haskell: 2.10.0.0 121 | directory: 1.2.2.0 122 | ghc-7.10.3: 123 | ghc: 7.10.3 124 | hoopl: 3.10.0.2 125 | bytestring: 0.10.6.0 126 | unix: 2.7.1.0 127 | haskeline: 0.7.2.1 128 | Cabal: 1.22.5.0 129 | base: 4.8.2.0 130 | time: 1.5.0.1 131 | xhtml: 3000.2.1 132 | hpc: 0.6.0.2 133 | filepath: 1.4.0.0 134 | process: 1.2.3.0 135 | array: 0.5.1.0 136 | Win32: 2.3.1.0 137 | integer-gmp: 1.0.0.0 138 | bin-package-db: 0.0.0.0 139 | containers: 0.5.6.2 140 | binary: 0.7.5.0 141 | ghc-prim: 0.4.0.0 142 | rts: '1.0' 143 | terminfo: 0.4.0.1 144 | transformers: 0.4.2.0 145 | deepseq: 1.4.1.1 146 | pretty: 1.1.2.0 147 | template-haskell: 2.10.0.0 148 | directory: 1.2.2.0 149 | ghc-8.0.1: 150 | ghc: 8.0.1 151 | hoopl: 3.10.2.1 152 | bytestring: 0.10.8.1 153 | unix: 2.7.2.0 154 | haskeline: 0.7.2.3 155 | Cabal: 1.24.0.0 156 | base: 4.9.0.0 157 | time: 1.6.0.1 158 | xhtml: 3000.2.1 159 | hpc: 0.6.0.3 160 | filepath: 1.4.1.0 161 | process: 1.4.2.0 162 | array: 0.5.1.1 163 | Win32: 2.3.1.1 164 | integer-gmp: 1.0.0.1 165 | containers: 0.5.7.1 166 | ghc-boot: 8.0.1 167 | binary: 0.8.3.0 168 | ghc-prim: 0.5.0.0 169 | ghci: 8.0.1 170 | rts: '1.0' 171 | terminfo: 0.4.0.2 172 | transformers: 0.5.2.0 173 | deepseq: 1.4.2.0 174 | ghc-boot-th: 8.0.1 175 | pretty: 1.1.3.3 176 | template-haskell: 2.11.0.0 177 | directory: 1.2.6.2 178 | ghc-8.0.2: 179 | ghc: 8.0.2 180 | hoopl: 3.10.2.1 181 | bytestring: 0.10.8.1 182 | unix: 2.7.2.1 183 | haskeline: 0.7.3.0 184 | Cabal: 1.24.2.0 185 | base: 4.9.1.0 186 | time: 1.6.0.1 187 | xhtml: 3000.2.1 188 | hpc: 0.6.0.3 189 | filepath: 1.4.1.1 190 | process: 1.4.3.0 191 | array: 0.5.1.1 192 | Win32: 2.3.1.1 193 | integer-gmp: 1.0.0.1 194 | containers: 0.5.7.1 195 | ghc-boot: 8.0.2 196 | binary: 0.8.3.0 197 | ghc-prim: 0.5.0.0 198 | ghci: 8.0.2 199 | rts: '1.0' 200 | terminfo: 0.4.0.2 201 | transformers: 0.5.2.0 202 | deepseq: 1.4.2.0 203 | ghc-boot-th: 8.0.2 204 | pretty: 1.1.3.3 205 | template-haskell: 2.11.1.0 206 | directory: 1.3.0.0 207 | ghc-8.2.1: 208 | ghc: 8.2.1 209 | hoopl: 3.10.2.2 210 | bytestring: 0.10.8.2 211 | unix: 2.7.2.2 212 | haskeline: 0.7.4.0 213 | Cabal: 2.0.0.2 214 | base: 4.10.0.0 215 | time: 1.8.0.2 216 | xhtml: 3000.2.2 217 | hpc: 0.6.0.3 218 | filepath: 1.4.1.2 219 | process: 1.6.1.0 220 | ghc-compact: 0.1.0.0 221 | array: 0.5.2.0 222 | Win32: 2.5.4.1 223 | integer-gmp: 1.0.1.0 224 | containers: 0.5.10.2 225 | ghc-boot: 8.2.1 226 | binary: 0.8.5.1 227 | ghc-prim: 0.5.1.0 228 | ghci: 8.2.1 229 | rts: '1.0' 230 | terminfo: 0.4.1.0 231 | transformers: 0.5.2.0 232 | deepseq: 1.4.3.0 233 | ghc-boot-th: 8.2.1 234 | pretty: 1.1.3.3 235 | template-haskell: 2.12.0.0 236 | directory: 1.3.0.2 237 | ghc-8.2.2: 238 | ghc: 8.2.2 239 | hoopl: 3.10.2.2 240 | bytestring: 0.10.8.2 241 | unix: 2.7.2.2 242 | haskeline: 0.7.4.0 243 | Cabal: 2.0.1.0 244 | base: 4.10.1.0 245 | time: 1.8.0.2 246 | xhtml: 3000.2.2 247 | hpc: 0.6.0.3 248 | filepath: 1.4.1.2 249 | process: 1.6.1.0 250 | ghc-compact: 0.1.0.0 251 | array: 0.5.2.0 252 | Win32: 2.5.4.1 253 | integer-gmp: 1.0.1.0 254 | containers: 0.5.10.2 255 | ghc-boot: 8.2.2 256 | binary: 0.8.5.1 257 | ghc-prim: 0.5.1.1 258 | ghci: 8.2.2 259 | rts: '1.0' 260 | terminfo: 0.4.1.0 261 | transformers: 0.5.2.0 262 | deepseq: 1.4.3.0 263 | ghc-boot-th: 8.2.2 264 | pretty: 1.1.3.3 265 | template-haskell: 2.12.0.0 266 | directory: 1.3.0.2 267 | ghc-8.4.1: 268 | ghc: 8.4.1 269 | bytestring: 0.10.8.2 270 | unix: 2.7.2.2 271 | haskeline: 0.7.4.2 272 | stm: 2.4.5.0 273 | Cabal: 2.2.0.0 274 | base: 4.11.0.0 275 | time: 1.8.0.2 276 | xhtml: 3000.2.2 277 | text: 1.2.3.0 278 | hpc: 0.6.0.3 279 | filepath: 1.4.2 280 | process: 1.6.3.0 281 | parsec: 3.1.13.0 282 | ghc-compact: 0.1.0.0 283 | array: 0.5.2.0 284 | Win32: 2.6.1.0 285 | integer-gmp: 1.0.1.0 286 | containers: 0.5.11.0 287 | ghc-boot: 8.4.1 288 | binary: 0.8.5.1 289 | ghc-prim: 0.5.2.0 290 | mtl: 2.2.2 291 | ghci: 8.4.1 292 | rts: '1.0' 293 | terminfo: 0.4.1.1 294 | transformers: 0.5.5.0 295 | deepseq: 1.4.3.0 296 | ghc-boot-th: 8.4.1 297 | pretty: 1.1.3.6 298 | template-haskell: 2.13.0.0 299 | directory: 1.3.1.5 300 | ghc-8.4.2: 301 | ghc: 8.4.2 302 | bytestring: 0.10.8.2 303 | unix: 2.7.2.2 304 | haskeline: 0.7.4.2 305 | stm: 2.4.5.0 306 | Cabal: 2.2.0.1 307 | base: 4.11.1.0 308 | time: 1.8.0.2 309 | xhtml: 3000.2.2.1 310 | text: 1.2.3.0 311 | hpc: 0.6.0.3 312 | filepath: 1.4.2 313 | process: 1.6.3.0 314 | parsec: 3.1.13.0 315 | ghc-compact: 0.1.0.0 316 | array: 0.5.2.0 317 | Win32: 2.6.1.0 318 | integer-gmp: 1.0.2.0 319 | containers: 0.5.11.0 320 | ghc-boot: 8.4.2 321 | binary: 0.8.5.1 322 | ghc-prim: 0.5.2.0 323 | mtl: 2.2.2 324 | ghci: 8.4.2 325 | rts: '1.0' 326 | terminfo: 0.4.1.1 327 | transformers: 0.5.5.0 328 | deepseq: 1.4.3.0 329 | ghc-boot-th: 8.4.2 330 | pretty: 1.1.3.6 331 | template-haskell: 2.13.0.0 332 | directory: 1.3.1.5 333 | ghc-8.4.3: 334 | ghc: 8.4.3 335 | bytestring: 0.10.8.2 336 | unix: 2.7.2.2 337 | haskeline: 0.7.4.2 338 | stm: 2.4.5.0 339 | Cabal: 2.2.0.1 340 | base: 4.11.1.0 341 | time: 1.8.0.2 342 | xhtml: 3000.2.2.1 343 | text: 1.2.3.0 344 | hpc: 0.6.0.3 345 | filepath: 1.4.2 346 | process: 1.6.3.0 347 | parsec: 3.1.13.0 348 | ghc-compact: 0.1.0.0 349 | array: 0.5.2.0 350 | Win32: 2.6.1.0 351 | integer-gmp: 1.0.2.0 352 | containers: 0.5.11.0 353 | ghc-boot: 8.4.3 354 | binary: 0.8.5.1 355 | ghc-prim: 0.5.2.0 356 | mtl: 2.2.2 357 | ghci: 8.4.3 358 | rts: '1.0' 359 | terminfo: 0.4.1.1 360 | transformers: 0.5.5.0 361 | deepseq: 1.4.3.0 362 | ghc-boot-th: 8.4.3 363 | pretty: 1.1.3.6 364 | template-haskell: 2.13.0.0 365 | directory: 1.3.1.5 366 | ghc-8.4.4: 367 | ghc: 8.4.4 368 | bytestring: 0.10.8.2 369 | unix: 2.7.2.2 370 | haskeline: 0.7.4.2 371 | stm: 2.4.5.1 372 | Cabal: 2.2.0.1 373 | base: 4.11.1.0 374 | time: 1.8.0.2 375 | xhtml: 3000.2.2.1 376 | text: 1.2.3.1 377 | hpc: 0.6.0.3 378 | filepath: 1.4.2 379 | process: 1.6.3.0 380 | parsec: 3.1.13.0 381 | ghc-compact: 0.1.0.0 382 | array: 0.5.2.0 383 | Win32: 2.6.1.0 384 | integer-gmp: 1.0.2.0 385 | containers: 0.5.11.0 386 | ghc-boot: 8.4.4 387 | binary: 0.8.5.1 388 | ghc-prim: 0.5.2.0 389 | mtl: 2.2.2 390 | ghci: 8.4.4 391 | rts: '1.0' 392 | terminfo: 0.4.1.1 393 | transformers: 0.5.5.0 394 | deepseq: 1.4.3.0 395 | ghc-boot-th: 8.4.4 396 | pretty: 1.1.3.6 397 | template-haskell: 2.13.0.0 398 | directory: 1.3.1.5 399 | ghc-8.6.1: 400 | ghc: 8.6.1 401 | bytestring: 0.10.8.2 402 | unix: 2.7.2.2 403 | haskeline: 0.7.4.3 404 | stm: 2.5.0.0 405 | Cabal: 2.4.0.1 406 | base: 4.12.0.0 407 | time: 1.8.0.2 408 | xhtml: 3000.2.2.1 409 | text: 1.2.3.1 410 | hpc: 0.6.0.3 411 | filepath: 1.4.2.1 412 | process: 1.6.3.0 413 | parsec: 3.1.13.0 414 | ghc-compact: 0.1.0.0 415 | array: 0.5.2.0 416 | Win32: 2.6.1.0 417 | integer-gmp: 1.0.2.0 418 | containers: 0.6.0.1 419 | libiserv: 8.6.1 420 | ghc-boot: 8.6.1 421 | binary: 0.8.6.0 422 | ghc-prim: 0.5.3 423 | mtl: 2.2.2 424 | ghc-heap: 8.6.1 425 | ghci: 8.6.1 426 | rts: '1.0' 427 | terminfo: 0.4.1.2 428 | transformers: 0.5.5.0 429 | deepseq: 1.4.4.0 430 | ghc-boot-th: 8.6.1 431 | pretty: 1.1.3.6 432 | template-haskell: 2.14.0.0 433 | directory: 1.3.3.0 434 | ghc-8.6.2: 435 | ghc: 8.6.2 436 | bytestring: 0.10.8.2 437 | unix: 2.7.2.2 438 | haskeline: 0.7.4.3 439 | stm: 2.5.0.0 440 | Cabal: 2.4.0.1 441 | base: 4.12.0.0 442 | time: 1.8.0.2 443 | xhtml: 3000.2.2.1 444 | text: 1.2.3.1 445 | hpc: 0.6.0.3 446 | filepath: 1.4.2.1 447 | process: 1.6.3.0 448 | parsec: 3.1.13.0 449 | ghc-compact: 0.1.0.0 450 | array: 0.5.3.0 451 | Win32: 2.6.1.0 452 | integer-gmp: 1.0.2.0 453 | containers: 0.6.0.1 454 | libiserv: 8.6.1 455 | ghc-boot: 8.6.2 456 | binary: 0.8.6.0 457 | ghc-prim: 0.5.3 458 | mtl: 2.2.2 459 | ghc-heap: 8.6.2 460 | ghci: 8.6.2 461 | rts: '1.0' 462 | terminfo: 0.4.1.2 463 | transformers: 0.5.5.0 464 | deepseq: 1.4.4.0 465 | ghc-boot-th: 8.6.2 466 | pretty: 1.1.3.6 467 | template-haskell: 2.14.0.0 468 | directory: 1.3.3.0 469 | ghc-8.6.3: 470 | ghc: 8.6.3 471 | bytestring: 0.10.8.2 472 | unix: 2.7.2.2 473 | haskeline: 0.7.4.3 474 | stm: 2.5.0.0 475 | Cabal: 2.4.0.1 476 | base: 4.12.0.0 477 | time: 1.8.0.2 478 | xhtml: 3000.2.2.1 479 | text: 1.2.3.1 480 | hpc: 0.6.0.3 481 | filepath: 1.4.2.1 482 | process: 1.6.3.0 483 | parsec: 3.1.13.0 484 | ghc-compact: 0.1.0.0 485 | array: 0.5.3.0 486 | Win32: 2.6.1.0 487 | integer-gmp: 1.0.2.0 488 | containers: 0.6.0.1 489 | libiserv: 8.6.3 490 | ghc-boot: 8.6.3 491 | binary: 0.8.6.0 492 | ghc-prim: 0.5.3 493 | mtl: 2.2.2 494 | ghc-heap: 8.6.3 495 | ghci: 8.6.3 496 | rts: '1.0' 497 | terminfo: 0.4.1.2 498 | transformers: 0.5.5.0 499 | deepseq: 1.4.4.0 500 | ghc-boot-th: 8.6.3 501 | pretty: 1.1.3.6 502 | template-haskell: 2.14.0.0 503 | directory: 1.3.3.0 504 | ghc-8.6.4: 505 | ghc: 8.6.4 506 | bytestring: 0.10.8.2 507 | unix: 2.7.2.2 508 | haskeline: 0.7.4.3 509 | stm: 2.5.0.0 510 | Cabal: 2.4.0.1 511 | base: 4.12.0.0 512 | time: 1.8.0.2 513 | xhtml: 3000.2.2.1 514 | text: 1.2.3.1 515 | hpc: 0.6.0.3 516 | filepath: 1.4.2.1 517 | process: 1.6.5.0 518 | parsec: 3.1.13.0 519 | ghc-compact: 0.1.0.0 520 | array: 0.5.3.0 521 | Win32: 2.6.1.0 522 | integer-gmp: 1.0.2.0 523 | containers: 0.6.0.1 524 | libiserv: 8.6.3 525 | ghc-boot: 8.6.4 526 | binary: 0.8.6.0 527 | ghc-prim: 0.5.3 528 | mtl: 2.2.2 529 | ghc-heap: 8.6.4 530 | ghci: 8.6.4 531 | rts: '1.0' 532 | terminfo: 0.4.1.2 533 | transformers: 0.5.6.2 534 | deepseq: 1.4.4.0 535 | ghc-boot-th: 8.6.4 536 | pretty: 1.1.3.6 537 | template-haskell: 2.14.0.0 538 | directory: 1.3.3.0 539 | ghc-8.6.5: 540 | ghc: 8.6.5 541 | bytestring: 0.10.8.2 542 | unix: 2.7.2.2 543 | haskeline: 0.7.4.3 544 | stm: 2.5.0.0 545 | Cabal: 2.4.0.1 546 | base: 4.12.0.0 547 | time: 1.8.0.2 548 | xhtml: 3000.2.2.1 549 | text: 1.2.3.1 550 | hpc: 0.6.0.3 551 | filepath: 1.4.2.1 552 | process: 1.6.5.0 553 | parsec: 3.1.13.0 554 | ghc-compact: 0.1.0.0 555 | array: 0.5.3.0 556 | Win32: 2.6.1.0 557 | integer-gmp: 1.0.2.0 558 | containers: 0.6.0.1 559 | libiserv: 8.6.3 560 | ghc-boot: 8.6.5 561 | binary: 0.8.6.0 562 | ghc-prim: 0.5.3 563 | mtl: 2.2.2 564 | ghc-heap: 8.6.5 565 | ghci: 8.6.5 566 | rts: '1.0' 567 | terminfo: 0.4.1.2 568 | transformers: 0.5.6.2 569 | deepseq: 1.4.4.0 570 | ghc-boot-th: 8.6.5 571 | pretty: 1.1.3.6 572 | template-haskell: 2.14.0.0 573 | directory: 1.3.3.0 574 | ghc-8.8.1: 575 | ghc: 8.8.1 576 | bytestring: 0.10.9.0 577 | unix: 2.7.2.2 578 | haskeline: 0.7.5.0 579 | stm: 2.5.0.0 580 | Cabal: 3.0.0.0 581 | base: 4.13.0.0 582 | time: 1.9.3 583 | xhtml: 3000.2.2.1 584 | text: 1.2.4.0 585 | hpc: 0.6.0.3 586 | filepath: 1.4.2.1 587 | process: 1.6.5.1 588 | parsec: 3.1.14.0 589 | ghc-compact: 0.1.0.0 590 | array: 0.5.4.0 591 | Win32: 2.6.1.0 592 | integer-gmp: 1.0.2.0 593 | containers: 0.6.2.1 594 | libiserv: 8.8.1 595 | ghc-boot: 8.8.1 596 | binary: 0.8.7.0 597 | ghc-prim: 0.5.3 598 | mtl: 2.2.2 599 | ghc-heap: 8.8.1 600 | ghci: 8.8.1 601 | rts: '1.0' 602 | terminfo: 0.4.1.4 603 | transformers: 0.5.6.2 604 | deepseq: 1.4.4.0 605 | ghc-boot-th: 8.8.1 606 | pretty: 1.1.3.6 607 | template-haskell: 2.15.0.0 608 | directory: 1.3.3.2 609 | ghc-8.8.2: 610 | ghc: 8.8.2 611 | bytestring: 0.10.10.0 612 | unix: 2.7.2.2 613 | haskeline: 0.7.5.0 614 | stm: 2.5.0.0 615 | Cabal: 3.0.1.0 616 | base: 4.13.0.0 617 | time: 1.9.3 618 | xhtml: 3000.2.2.1 619 | text: 1.2.4.0 620 | hpc: 0.6.0.3 621 | filepath: 1.4.2.1 622 | process: 1.6.7.0 623 | parsec: 3.1.14.0 624 | ghc-compact: 0.1.0.0 625 | array: 0.5.4.0 626 | Win32: 2.6.1.0 627 | integer-gmp: 1.0.2.0 628 | containers: 0.6.2.1 629 | libiserv: 8.8.2 630 | ghc-boot: 8.8.2 631 | binary: 0.8.7.0 632 | ghc-prim: 0.5.3 633 | mtl: 2.2.2 634 | ghc-heap: 8.8.2 635 | ghci: 8.8.2 636 | rts: '1.0' 637 | terminfo: 0.4.1.4 638 | transformers: 0.5.6.2 639 | deepseq: 1.4.4.0 640 | ghc-boot-th: 8.8.2 641 | pretty: 1.1.3.6 642 | template-haskell: 2.15.0.0 643 | directory: 1.3.4.0 644 | ghc-8.8.3: 645 | ghc: 8.8.3 646 | bytestring: 0.10.10.0 647 | unix: 2.7.2.2 648 | haskeline: 0.7.5.0 649 | stm: 2.5.0.0 650 | Cabal: 3.0.1.0 651 | base: 4.13.0.0 652 | time: 1.9.3 653 | xhtml: 3000.2.2.1 654 | text: 1.2.4.0 655 | hpc: 0.6.0.3 656 | filepath: 1.4.2.1 657 | process: 1.6.8.0 658 | parsec: 3.1.14.0 659 | ghc-compact: 0.1.0.0 660 | array: 0.5.4.0 661 | Win32: 2.6.1.0 662 | integer-gmp: 1.0.2.0 663 | containers: 0.6.2.1 664 | libiserv: 8.8.3 665 | ghc-boot: 8.8.3 666 | binary: 0.8.7.0 667 | ghc-prim: 0.5.3 668 | mtl: 2.2.2 669 | ghc-heap: 8.8.3 670 | ghci: 8.8.3 671 | rts: '1.0' 672 | terminfo: 0.4.1.4 673 | transformers: 0.5.6.2 674 | deepseq: 1.4.4.0 675 | ghc-boot-th: 8.8.3 676 | pretty: 1.1.3.6 677 | template-haskell: 2.15.0.0 678 | directory: 1.3.6.0 679 | ghc-8.8.4: 680 | ghc: 8.8.4 681 | bytestring: 0.10.10.1 682 | unix: 2.7.2.2 683 | haskeline: 0.7.5.0 684 | stm: 2.5.0.0 685 | Cabal: 3.0.1.0 686 | base: 4.13.0.0 687 | time: 1.9.3 688 | xhtml: 3000.2.2.1 689 | text: 1.2.4.0 690 | hpc: 0.6.0.3 691 | filepath: 1.4.2.1 692 | process: 1.6.9.0 693 | parsec: 3.1.14.0 694 | ghc-compact: 0.1.0.0 695 | array: 0.5.4.0 696 | Win32: 2.6.1.0 697 | integer-gmp: 1.0.2.0 698 | containers: 0.6.2.1 699 | libiserv: 8.8.4 700 | ghc-boot: 8.8.4 701 | binary: 0.8.7.0 702 | ghc-prim: 0.5.3 703 | mtl: 2.2.2 704 | ghc-heap: 8.8.4 705 | ghci: 8.8.4 706 | rts: '1.0' 707 | terminfo: 0.4.1.4 708 | transformers: 0.5.6.2 709 | deepseq: 1.4.4.0 710 | ghc-boot-th: 8.8.4 711 | pretty: 1.1.3.6 712 | template-haskell: 2.15.0.0 713 | directory: 1.3.6.0 714 | ghc-8.10.1: 715 | exceptions: 0.10.4 716 | ghc: 8.10.1 717 | bytestring: 0.10.10.0 718 | unix: 2.7.2.2 719 | haskeline: 0.8.0.0 720 | stm: 2.5.0.0 721 | Cabal: 3.2.0.0 722 | base: 4.14.0.0 723 | time: 1.9.3 724 | xhtml: 3000.2.2.1 725 | text: 1.2.3.2 726 | hpc: 0.6.1.0 727 | filepath: 1.4.2.1 728 | process: 1.6.8.2 729 | parsec: 3.1.14.0 730 | ghc-compact: 0.1.0.0 731 | array: 0.5.4.0 732 | Win32: 2.6.1.0 733 | integer-gmp: 1.0.3.0 734 | containers: 0.6.2.1 735 | libiserv: 8.10.1 736 | ghc-boot: 8.10.1 737 | binary: 0.8.8.0 738 | ghc-prim: 0.6.1 739 | mtl: 2.2.2 740 | ghc-heap: 8.10.1 741 | ghci: 8.10.1 742 | rts: '1.0' 743 | terminfo: 0.4.1.4 744 | transformers: 0.5.6.2 745 | deepseq: 1.4.4.0 746 | ghc-boot-th: 8.10.1 747 | pretty: 1.1.3.6 748 | template-haskell: 2.16.0.0 749 | directory: 1.3.6.0 750 | ghc-8.10.2: 751 | exceptions: 0.10.4 752 | ghc: 8.10.2 753 | bytestring: 0.10.10.0 754 | unix: 2.7.2.2 755 | haskeline: 0.8.0.1 756 | stm: 2.5.0.0 757 | Cabal: 3.2.0.0 758 | base: 4.14.1.0 759 | time: 1.9.3 760 | xhtml: 3000.2.2.1 761 | text: 1.2.3.2 762 | hpc: 0.6.1.0 763 | filepath: 1.4.2.1 764 | process: 1.6.9.0 765 | parsec: 3.1.14.0 766 | ghc-compact: 0.1.0.0 767 | array: 0.5.4.0 768 | Win32: 2.6.1.0 769 | integer-gmp: 1.0.3.0 770 | containers: 0.6.2.1 771 | libiserv: 8.10.2 772 | ghc-boot: 8.10.2 773 | binary: 0.8.8.0 774 | ghc-prim: 0.6.1 775 | mtl: 2.2.2 776 | ghc-heap: 8.10.2 777 | ghci: 8.10.2 778 | rts: '1.0' 779 | terminfo: 0.4.1.4 780 | transformers: 0.5.6.2 781 | deepseq: 1.4.4.0 782 | ghc-boot-th: 8.10.2 783 | pretty: 1.1.3.6 784 | template-haskell: 2.16.0.0 785 | directory: 1.3.6.0 786 | ghc-8.10.3: 787 | exceptions: 0.10.4 788 | ghc: 8.10.3 789 | bytestring: 0.10.12.0 790 | unix: 2.7.2.2 791 | haskeline: 0.8.0.1 792 | stm: 2.5.0.0 793 | Cabal: 3.2.1.0 794 | base: 4.14.1.0 795 | time: 1.9.3 796 | xhtml: 3000.2.2.1 797 | text: 1.2.4.1 798 | hpc: 0.6.1.0 799 | filepath: 1.4.2.1 800 | process: 1.6.9.0 801 | parsec: 3.1.14.0 802 | ghc-compact: 0.1.0.0 803 | array: 0.5.4.0 804 | Win32: 2.6.1.0 805 | integer-gmp: 1.0.3.0 806 | containers: 0.6.2.1 807 | libiserv: 8.10.3 808 | ghc-boot: 8.10.3 809 | binary: 0.8.8.0 810 | ghc-prim: 0.6.1 811 | mtl: 2.2.2 812 | ghc-heap: 8.10.3 813 | ghci: 8.10.3 814 | rts: '1.0' 815 | terminfo: 0.4.1.4 816 | transformers: 0.5.6.2 817 | deepseq: 1.4.4.0 818 | ghc-boot-th: 8.10.3 819 | pretty: 1.1.3.6 820 | template-haskell: 2.16.0.0 821 | directory: 1.3.6.0 822 | ghc-8.10.4: 823 | exceptions: 0.10.4 824 | ghc: 8.10.4 825 | bytestring: 0.10.12.0 826 | unix: 2.7.2.2 827 | haskeline: 0.8.0.1 828 | stm: 2.5.0.0 829 | Cabal: 3.2.1.0 830 | base: 4.14.1.0 831 | time: 1.9.3 832 | xhtml: 3000.2.2.1 833 | text: 1.2.4.1 834 | hpc: 0.6.1.0 835 | filepath: 1.4.2.1 836 | process: 1.6.9.0 837 | parsec: 3.1.14.0 838 | ghc-compact: 0.1.0.0 839 | array: 0.5.4.0 840 | Win32: 2.6.1.0 841 | integer-gmp: 1.0.3.0 842 | containers: 0.6.2.1 843 | libiserv: 8.10.4 844 | ghc-boot: 8.10.4 845 | binary: 0.8.8.0 846 | ghc-prim: 0.6.1 847 | mtl: 2.2.2 848 | ghc-heap: 8.10.4 849 | ghci: 8.10.4 850 | rts: '1.0' 851 | terminfo: 0.4.1.4 852 | transformers: 0.5.6.2 853 | deepseq: 1.4.4.0 854 | ghc-boot-th: 8.10.4 855 | pretty: 1.1.3.6 856 | template-haskell: 2.16.0.0 857 | directory: 1.3.6.0 858 | ghc-8.10.5: 859 | exceptions: 0.10.4 860 | ghc: 8.10.5 861 | bytestring: 0.10.12.0 862 | unix: 2.7.2.2 863 | haskeline: 0.8.0.1 864 | stm: 2.5.0.1 865 | Cabal: 3.2.1.0 866 | base: 4.14.2.0 867 | time: 1.9.3 868 | xhtml: 3000.2.2.1 869 | text: 1.2.4.1 870 | hpc: 0.6.1.0 871 | filepath: 1.4.2.1 872 | process: 1.6.9.0 873 | parsec: 3.1.14.0 874 | ghc-compact: 0.1.0.0 875 | array: 0.5.4.0 876 | Win32: 2.6.1.0 877 | integer-gmp: 1.0.3.0 878 | containers: 0.6.4.1 879 | libiserv: 8.10.5 880 | ghc-boot: 8.10.5 881 | binary: 0.8.8.0 882 | ghc-prim: 0.6.1 883 | mtl: 2.2.2 884 | ghc-heap: 8.10.5 885 | ghci: 8.10.5 886 | rts: 1.0.1 887 | terminfo: 0.4.1.4 888 | transformers: 0.5.6.2 889 | deepseq: 1.4.4.0 890 | ghc-boot-th: 8.10.5 891 | pretty: 1.1.3.6 892 | template-haskell: 2.16.0.0 893 | directory: 1.3.6.0 894 | ghc-8.10.6: 895 | exceptions: 0.10.4 896 | ghc: 8.10.6 897 | bytestring: 0.10.12.0 898 | unix: 2.7.2.2 899 | haskeline: 0.8.2 900 | stm: 2.5.0.1 901 | Cabal: 3.2.1.0 902 | base: 4.14.3.0 903 | time: 1.9.3 904 | xhtml: 3000.2.2.1 905 | text: 1.2.4.1 906 | hpc: 0.6.1.0 907 | filepath: 1.4.2.1 908 | process: 1.6.13.2 909 | parsec: 3.1.14.0 910 | ghc-compact: 0.1.0.0 911 | array: 0.5.4.0 912 | Win32: 2.6.2.1 913 | integer-gmp: 1.0.3.0 914 | containers: 0.6.5.1 915 | libiserv: 8.10.6 916 | ghc-boot: 8.10.6 917 | binary: 0.8.8.0 918 | ghc-prim: 0.6.1 919 | mtl: 2.2.2 920 | ghc-heap: 8.10.6 921 | ghci: 8.10.6 922 | rts: 1.0.1 923 | terminfo: 0.4.1.4 924 | transformers: 0.5.6.2 925 | deepseq: 1.4.4.0 926 | ghc-boot-th: 8.10.6 927 | pretty: 1.1.3.6 928 | template-haskell: 2.16.0.0 929 | directory: 1.3.6.0 930 | ghc-8.10.7: 931 | exceptions: 0.10.4 932 | ghc: 8.10.7 933 | bytestring: 0.10.12.0 934 | unix: 2.7.2.2 935 | haskeline: 0.8.2 936 | stm: 2.5.0.1 937 | Cabal: 3.2.1.0 938 | base: 4.14.3.0 939 | time: 1.9.3 940 | xhtml: 3000.2.2.1 941 | text: 1.2.4.1 942 | hpc: 0.6.1.0 943 | filepath: 1.4.2.1 944 | process: 1.6.13.2 945 | parsec: 3.1.14.0 946 | ghc-compact: 0.1.0.0 947 | array: 0.5.4.0 948 | Win32: 2.6.2.1 949 | integer-gmp: 1.0.3.0 950 | containers: 0.6.5.1 951 | libiserv: 8.10.7 952 | ghc-boot: 8.10.7 953 | binary: 0.8.8.0 954 | ghc-prim: 0.6.1 955 | mtl: 2.2.2 956 | ghc-heap: 8.10.7 957 | ghci: 8.10.7 958 | rts: 1.0.1 959 | terminfo: 0.4.1.4 960 | transformers: 0.5.6.2 961 | deepseq: 1.4.4.0 962 | ghc-boot-th: 8.10.7 963 | pretty: 1.1.3.6 964 | template-haskell: 2.16.0.0 965 | directory: 1.3.6.0 966 | ghc-9.0.1: 967 | exceptions: 0.10.4 968 | ghc: 9.0.1 969 | bytestring: 0.10.12.1 970 | unix: 2.7.2.2 971 | haskeline: 0.8.1.0 972 | stm: 2.5.0.0 973 | Cabal: 3.4.0.0 974 | base: 4.15.0.0 975 | time: 1.9.3 976 | xhtml: 3000.2.2.1 977 | text: 1.2.4.1 978 | hpc: 0.6.1.0 979 | ghc-bignum: '1.0' 980 | filepath: 1.4.2.1 981 | process: 1.6.11.0 982 | parsec: 3.1.14.0 983 | ghc-compact: 0.1.0.0 984 | array: 0.5.4.0 985 | Win32: 2.10.0.0 986 | integer-gmp: '1.1' 987 | containers: 0.6.4.1 988 | libiserv: 9.0.1 989 | ghc-boot: 9.0.1 990 | binary: 0.8.8.0 991 | ghc-prim: 0.7.0 992 | mtl: 2.2.2 993 | ghc-heap: 9.0.1 994 | ghci: 9.0.1 995 | rts: '1.0' 996 | terminfo: 0.4.1.4 997 | transformers: 0.5.6.2 998 | deepseq: 1.4.5.0 999 | ghc-boot-th: 9.0.1 1000 | pretty: 1.1.3.6 1001 | template-haskell: 2.17.0.0 1002 | directory: 1.3.6.1 1003 | ghc-9.0.2: 1004 | exceptions: 0.10.4 1005 | ghc: 9.0.2 1006 | bytestring: 0.10.12.1 1007 | unix: 2.7.2.2 1008 | haskeline: 0.8.2 1009 | stm: 2.5.0.0 1010 | Cabal: 3.4.1.0 1011 | base: 4.15.1.0 1012 | time: 1.9.3 1013 | xhtml: 3000.2.2.1 1014 | text: 1.2.5.0 1015 | hpc: 0.6.1.0 1016 | ghc-bignum: '1.1' 1017 | filepath: 1.4.2.1 1018 | process: 1.6.13.2 1019 | parsec: 3.1.14.0 1020 | ghc-compact: 0.1.0.0 1021 | array: 0.5.4.0 1022 | Win32: 2.12.0.1 1023 | integer-gmp: '1.1' 1024 | containers: 0.6.4.1 1025 | libiserv: 9.0.2 1026 | ghc-boot: 9.0.2 1027 | binary: 0.8.8.0 1028 | ghc-prim: 0.7.0 1029 | mtl: 2.2.2 1030 | ghc-heap: 9.0.2 1031 | ghci: 9.0.2 1032 | rts: 1.0.2 1033 | terminfo: 0.4.1.5 1034 | transformers: 0.5.6.2 1035 | deepseq: 1.4.5.0 1036 | ghc-boot-th: 9.0.2 1037 | pretty: 1.1.3.6 1038 | template-haskell: 2.17.0.0 1039 | directory: 1.3.6.2 1040 | ghc-9.2.2: 1041 | exceptions: 0.10.4 1042 | ghc: 9.2.2 1043 | bytestring: 0.11.3.0 1044 | unix: 2.7.2.2 1045 | haskeline: 0.8.2 1046 | stm: 2.5.0.2 1047 | Cabal: 3.6.3.0 1048 | base: 4.16.1.0 1049 | time: 1.11.1.1 1050 | xhtml: 3000.2.2.1 1051 | text: 1.2.5.0 1052 | hpc: 0.6.1.0 1053 | ghc-bignum: '1.2' 1054 | filepath: 1.4.2.2 1055 | process: 1.6.13.2 1056 | parsec: 3.1.15.0 1057 | ghc-compact: 0.1.0.0 1058 | array: 0.5.4.0 1059 | Win32: 2.12.0.1 1060 | integer-gmp: '1.1' 1061 | containers: 0.6.5.1 1062 | libiserv: 9.2.2 1063 | ghc-boot: 9.2.2 1064 | binary: 0.8.9.0 1065 | ghc-prim: 0.8.0 1066 | mtl: 2.2.2 1067 | ghc-heap: 9.2.2 1068 | ghci: 9.2.2 1069 | rts: 1.0.2 1070 | terminfo: 0.4.1.5 1071 | transformers: 0.5.6.2 1072 | deepseq: 1.4.6.1 1073 | ghc-boot-th: 9.2.2 1074 | pretty: 1.1.3.6 1075 | template-haskell: 2.18.0.0 1076 | directory: 1.3.6.2 1077 | ghc-9.2.3: 1078 | exceptions: 0.10.4 1079 | ghc: 9.2.3 1080 | bytestring: 0.11.3.1 1081 | unix: 2.7.2.2 1082 | haskeline: 0.8.2 1083 | stm: 2.5.0.2 1084 | Cabal: 3.6.3.0 1085 | base: 4.16.2.0 1086 | time: 1.11.1.1 1087 | xhtml: 3000.2.2.1 1088 | text: 1.2.5.0 1089 | hpc: 0.6.1.0 1090 | ghc-bignum: '1.2' 1091 | filepath: 1.4.2.2 1092 | process: 1.6.13.2 1093 | parsec: 3.1.15.0 1094 | ghc-compact: 0.1.0.0 1095 | array: 0.5.4.0 1096 | Win32: 2.12.0.1 1097 | integer-gmp: '1.1' 1098 | containers: 0.6.5.1 1099 | libiserv: 9.2.3 1100 | ghc-boot: 9.2.3 1101 | binary: 0.8.9.0 1102 | ghc-prim: 0.8.0 1103 | mtl: 2.2.2 1104 | ghc-heap: 9.2.3 1105 | ghci: 9.2.3 1106 | rts: 1.0.2 1107 | terminfo: 0.4.1.5 1108 | transformers: 0.5.6.2 1109 | deepseq: 1.4.6.1 1110 | ghc-boot-th: 9.2.3 1111 | pretty: 1.1.3.6 1112 | template-haskell: 2.18.0.0 1113 | directory: 1.3.6.2 1114 | ghc-9.2.4: 1115 | exceptions: 0.10.4 1116 | ghc: 9.2.4 1117 | bytestring: 0.11.3.1 1118 | unix: 2.7.2.2 1119 | haskeline: 0.8.2 1120 | stm: 2.5.0.2 1121 | Cabal: 3.6.3.0 1122 | base: 4.16.3.0 1123 | time: 1.11.1.1 1124 | xhtml: 3000.2.2.1 1125 | text: 1.2.5.0 1126 | hpc: 0.6.1.0 1127 | ghc-bignum: '1.2' 1128 | filepath: 1.4.2.2 1129 | process: 1.6.13.2 1130 | parsec: 3.1.15.0 1131 | ghc-compact: 0.1.0.0 1132 | array: 0.5.4.0 1133 | Win32: 2.12.0.1 1134 | integer-gmp: '1.1' 1135 | containers: 0.6.5.1 1136 | libiserv: 9.2.4 1137 | ghc-boot: 9.2.4 1138 | binary: 0.8.9.0 1139 | ghc-prim: 0.8.0 1140 | mtl: 2.2.2 1141 | ghc-heap: 9.2.4 1142 | ghci: 9.2.4 1143 | rts: 1.0.2 1144 | terminfo: 0.4.1.5 1145 | transformers: 0.5.6.2 1146 | deepseq: 1.4.6.1 1147 | ghc-boot-th: 9.2.4 1148 | pretty: 1.1.3.6 1149 | template-haskell: 2.18.0.0 1150 | directory: 1.3.6.2 1151 | ghc-9.2.5: 1152 | Cabal: 3.6.3.0 1153 | Win32: 2.12.0.1 1154 | array: 0.5.4.0 1155 | base: 4.16.4.0 1156 | binary: 0.8.9.0 1157 | bytestring: 0.11.3.1 1158 | containers: 0.6.5.1 1159 | deepseq: 1.4.6.1 1160 | directory: 1.3.6.2 1161 | exceptions: 0.10.4 1162 | filepath: 1.4.2.2 1163 | ghc: 9.2.5 1164 | ghc-bignum: '1.2' 1165 | ghc-boot: 9.2.5 1166 | ghc-boot-th: 9.2.5 1167 | ghc-compact: 0.1.0.0 1168 | ghc-heap: 9.2.5 1169 | ghc-prim: 0.8.0 1170 | ghci: 9.2.5 1171 | haskeline: 0.8.2 1172 | hpc: 0.6.1.0 1173 | integer-gmp: '1.1' 1174 | libiserv: 9.2.5 1175 | mtl: 2.2.2 1176 | parsec: 3.1.15.0 1177 | pretty: 1.1.3.6 1178 | process: 1.6.16.0 1179 | rts: 1.0.2 1180 | stm: 2.5.0.2 1181 | template-haskell: 2.18.0.0 1182 | terminfo: 0.4.1.5 1183 | text: 1.2.5.0 1184 | time: 1.11.1.1 1185 | transformers: 0.5.6.2 1186 | unix: 2.7.2.2 1187 | xhtml: 3000.2.2.1 1188 | ghc-9.2.6: 1189 | Cabal: 3.6.3.0 1190 | Win32: 2.12.0.1 1191 | array: 0.5.4.0 1192 | base: 4.16.4.0 1193 | binary: 0.8.9.0 1194 | bytestring: 0.11.4.0 1195 | containers: 0.6.5.1 1196 | deepseq: 1.4.6.1 1197 | directory: 1.3.6.2 1198 | exceptions: 0.10.4 1199 | filepath: 1.4.2.2 1200 | ghc: 9.2.6 1201 | ghc-bignum: '1.2' 1202 | ghc-boot: 9.2.6 1203 | ghc-boot-th: 9.2.6 1204 | ghc-compact: 0.1.0.0 1205 | ghc-heap: 9.2.6 1206 | ghc-prim: 0.8.0 1207 | ghci: 9.2.6 1208 | haskeline: 0.8.2 1209 | hpc: 0.6.1.0 1210 | integer-gmp: '1.1' 1211 | libiserv: 9.2.6 1212 | mtl: 2.2.2 1213 | parsec: 3.1.15.0 1214 | pretty: 1.1.3.6 1215 | process: 1.6.16.0 1216 | rts: 1.0.2 1217 | stm: 2.5.0.2 1218 | template-haskell: 2.18.0.0 1219 | terminfo: 0.4.1.5 1220 | text: 1.2.5.0 1221 | time: 1.11.1.1 1222 | transformers: 0.5.6.2 1223 | unix: 2.7.2.2 1224 | xhtml: 3000.2.2.1 1225 | ghc-9.2.7: 1226 | Cabal: 3.6.3.0 1227 | Win32: 2.12.0.1 1228 | array: 0.5.4.0 1229 | base: 4.16.4.0 1230 | binary: 0.8.9.0 1231 | bytestring: 0.11.4.0 1232 | containers: 0.6.5.1 1233 | deepseq: 1.4.6.1 1234 | directory: 1.3.6.2 1235 | exceptions: 0.10.4 1236 | filepath: 1.4.2.2 1237 | ghc: 9.2.7 1238 | ghc-bignum: '1.2' 1239 | ghc-boot: 9.2.7 1240 | ghc-boot-th: 9.2.7 1241 | ghc-compact: 0.1.0.0 1242 | ghc-heap: 9.2.7 1243 | ghc-prim: 0.8.0 1244 | ghci: 9.2.7 1245 | haskeline: 0.8.2 1246 | hpc: 0.6.1.0 1247 | integer-gmp: '1.1' 1248 | libiserv: 9.2.7 1249 | mtl: 2.2.2 1250 | parsec: 3.1.15.0 1251 | pretty: 1.1.3.6 1252 | process: 1.6.16.0 1253 | rts: 1.0.2 1254 | stm: 2.5.0.2 1255 | template-haskell: 2.18.0.0 1256 | terminfo: 0.4.1.5 1257 | text: 1.2.5.0 1258 | time: 1.11.1.1 1259 | transformers: 0.5.6.2 1260 | unix: 2.7.2.2 1261 | xhtml: 3000.2.2.1 1262 | ghc-9.2.8: 1263 | Cabal: 3.6.3.0 1264 | Win32: 2.12.0.1 1265 | array: 0.5.4.0 1266 | base: 4.16.4.0 1267 | binary: 0.8.9.0 1268 | bytestring: 0.11.4.0 1269 | containers: 0.6.5.1 1270 | deepseq: 1.4.6.1 1271 | directory: 1.3.6.2 1272 | exceptions: 0.10.4 1273 | filepath: 1.4.2.2 1274 | ghc: 9.2.8 1275 | ghc-bignum: '1.2' 1276 | ghc-boot: 9.2.8 1277 | ghc-boot-th: 9.2.8 1278 | ghc-compact: 0.1.0.0 1279 | ghc-heap: 9.2.8 1280 | ghc-prim: 0.8.0 1281 | ghci: 9.2.8 1282 | haskeline: 0.8.2 1283 | hpc: 0.6.1.0 1284 | integer-gmp: '1.1' 1285 | libiserv: 9.2.8 1286 | mtl: 2.2.2 1287 | parsec: 3.1.15.0 1288 | pretty: 1.1.3.6 1289 | process: 1.6.16.0 1290 | rts: 1.0.2 1291 | stm: 2.5.0.2 1292 | template-haskell: 2.18.0.0 1293 | terminfo: 0.4.1.5 1294 | text: 1.2.5.0 1295 | time: 1.11.1.1 1296 | transformers: 0.5.6.2 1297 | unix: 2.7.2.2 1298 | xhtml: 3000.2.2.1 1299 | ghc-9.4.0.20220721: 1300 | Cabal-syntax: 3.8.0.20220526 1301 | Cabal: 3.8.0.20220526 1302 | Win32: 2.12.0.0 1303 | array: 0.5.4.0 1304 | base: 4.17.0.0 1305 | binary: 0.8.9.0 1306 | bytestring: 0.11.3.1 1307 | containers: 0.6.5.1 1308 | deepseq: 1.4.8.0 1309 | directory: 1.3.7.1 1310 | exceptions: 0.10.5 1311 | filepath: 1.4.2.2 1312 | ghc-bignum: '1.3' 1313 | ghc-boot-th: 9.4.0.20220721 1314 | ghc-boot: 9.4.0.20220721 1315 | ghc-compact: 0.1.0.0 1316 | ghc-heap: 9.4.0.20220721 1317 | ghc-prim: 0.9.0 1318 | ghc: 9.4.0.20220721 1319 | ghci: 9.4.0.20220721 1320 | haskeline: 0.8.2 1321 | hpc: 0.6.1.0 1322 | integer-gmp: '1.1' 1323 | libiserv: 9.4.0.20220721 1324 | mtl: 2.2.2 1325 | parsec: 3.1.15.0 1326 | pretty: 1.1.3.6 1327 | process: 1.6.14.0 1328 | rts: 1.0.2 1329 | stm: 2.5.1.0 1330 | system-cxx-std-lib: '1.0' 1331 | template-haskell: 2.19.0.0 1332 | terminfo: 0.4.1.5 1333 | text: '2.0' 1334 | time: 1.12.2 1335 | transformers: 0.5.6.2 1336 | unix: 2.7.3 1337 | xhtml: 3000.2.2.1 1338 | ghc-9.4.1: 1339 | Cabal: 3.8.1.0 1340 | Cabal-syntax: 3.8.1.0 1341 | Win32: 2.12.0.0 1342 | array: 0.5.4.0 1343 | base: 4.17.0.0 1344 | binary: 0.8.9.1 1345 | bytestring: 0.11.3.1 1346 | containers: 0.6.6 1347 | deepseq: 1.4.8.0 1348 | directory: 1.3.7.1 1349 | exceptions: 0.10.5 1350 | filepath: 1.4.2.2 1351 | ghc: 9.4.1 1352 | ghc-bignum: '1.3' 1353 | ghc-boot: 9.4.1 1354 | ghc-boot-th: 9.4.1 1355 | ghc-compact: 0.1.0.0 1356 | ghc-heap: 9.4.1 1357 | ghc-prim: 0.9.0 1358 | ghci: 9.4.1 1359 | haskeline: 0.8.2 1360 | hpc: 0.6.1.0 1361 | integer-gmp: '1.1' 1362 | libiserv: 9.4.1 1363 | mtl: 2.2.2 1364 | parsec: 3.1.15.0 1365 | pretty: 1.1.3.6 1366 | process: 1.6.15.0 1367 | rts: 1.0.2 1368 | stm: 2.5.1.0 1369 | system-cxx-std-lib: '1.0' 1370 | template-haskell: 2.19.0.0 1371 | terminfo: 0.4.1.5 1372 | text: 2.0.1 1373 | time: 1.12.2 1374 | transformers: 0.5.6.2 1375 | unix: 2.7.3 1376 | xhtml: 3000.2.2.1 1377 | ghc-9.4.2: 1378 | Cabal: 3.8.1.0 1379 | Cabal-syntax: 3.8.1.0 1380 | Win32: 2.12.0.0 1381 | array: 0.5.4.0 1382 | base: 4.17.0.0 1383 | binary: 0.8.9.1 1384 | bytestring: 0.11.3.1 1385 | containers: 0.6.6 1386 | deepseq: 1.4.8.0 1387 | directory: 1.3.7.1 1388 | exceptions: 0.10.5 1389 | filepath: 1.4.2.2 1390 | ghc: 9.4.2 1391 | ghc-bignum: '1.3' 1392 | ghc-boot: 9.4.2 1393 | ghc-boot-th: 9.4.2 1394 | ghc-compact: 0.1.0.0 1395 | ghc-heap: 9.4.2 1396 | ghc-prim: 0.9.0 1397 | ghci: 9.4.2 1398 | haskeline: 0.8.2 1399 | hpc: 0.6.1.0 1400 | integer-gmp: '1.1' 1401 | libiserv: 9.4.2 1402 | mtl: 2.2.2 1403 | parsec: 3.1.15.0 1404 | pretty: 1.1.3.6 1405 | process: 1.6.15.0 1406 | rts: 1.0.2 1407 | stm: 2.5.1.0 1408 | system-cxx-std-lib: '1.0' 1409 | template-haskell: 2.19.0.0 1410 | terminfo: 0.4.1.5 1411 | text: 2.0.1 1412 | time: 1.12.2 1413 | transformers: 0.5.6.2 1414 | unix: 2.7.3 1415 | xhtml: 3000.2.2.1 1416 | ghc-9.4.3: 1417 | Cabal: 3.8.1.0 1418 | Cabal-syntax: 3.8.1.0 1419 | Win32: 2.12.0.0 1420 | array: 0.5.4.0 1421 | base: 4.17.0.0 1422 | binary: 0.8.9.1 1423 | bytestring: 0.11.3.1 1424 | containers: 0.6.6 1425 | deepseq: 1.4.8.0 1426 | directory: 1.3.7.1 1427 | exceptions: 0.10.5 1428 | filepath: 1.4.2.2 1429 | ghc: 9.4.3 1430 | ghc-bignum: '1.3' 1431 | ghc-boot: 9.4.3 1432 | ghc-boot-th: 9.4.3 1433 | ghc-compact: 0.1.0.0 1434 | ghc-heap: 9.4.3 1435 | ghc-prim: 0.9.0 1436 | ghci: 9.4.3 1437 | haskeline: 0.8.2 1438 | hpc: 0.6.1.0 1439 | integer-gmp: '1.1' 1440 | libiserv: 9.4.3 1441 | mtl: 2.2.2 1442 | parsec: 3.1.15.0 1443 | pretty: 1.1.3.6 1444 | process: 1.6.16.0 1445 | rts: 1.0.2 1446 | stm: 2.5.1.0 1447 | system-cxx-std-lib: '1.0' 1448 | template-haskell: 2.19.0.0 1449 | terminfo: 0.4.1.5 1450 | text: 2.0.1 1451 | time: 1.12.2 1452 | transformers: 0.5.6.2 1453 | unix: 2.7.3 1454 | xhtml: 3000.2.2.1 1455 | ghc-9.4.4: 1456 | Cabal: 3.8.1.0 1457 | Cabal-syntax: 3.8.1.0 1458 | Win32: 2.12.0.1 1459 | array: 0.5.4.0 1460 | base: 4.17.0.0 1461 | binary: 0.8.9.1 1462 | bytestring: 0.11.3.1 1463 | containers: 0.6.6 1464 | deepseq: 1.4.8.0 1465 | directory: 1.3.7.1 1466 | exceptions: 0.10.5 1467 | filepath: 1.4.2.2 1468 | ghc: 9.4.4 1469 | ghc-bignum: '1.3' 1470 | ghc-boot: 9.4.4 1471 | ghc-boot-th: 9.4.4 1472 | ghc-compact: 0.1.0.0 1473 | ghc-heap: 9.4.4 1474 | ghc-prim: 0.9.0 1475 | ghci: 9.4.4 1476 | haskeline: 0.8.2 1477 | hpc: 0.6.1.0 1478 | integer-gmp: '1.1' 1479 | libiserv: 9.4.4 1480 | mtl: 2.2.2 1481 | parsec: 3.1.15.0 1482 | pretty: 1.1.3.6 1483 | process: 1.6.16.0 1484 | rts: 1.0.2 1485 | stm: 2.5.1.0 1486 | system-cxx-std-lib: '1.0' 1487 | template-haskell: 2.19.0.0 1488 | terminfo: 0.4.1.5 1489 | text: 2.0.1 1490 | time: 1.12.2 1491 | transformers: 0.5.6.2 1492 | unix: 2.7.3 1493 | xhtml: 3000.2.2.1 1494 | ghc-9.4.5: 1495 | Cabal: 3.8.1.0 1496 | Cabal-syntax: 3.8.1.0 1497 | Win32: 2.12.0.1 1498 | array: 0.5.4.0 1499 | base: 4.17.1.0 1500 | binary: 0.8.9.1 1501 | bytestring: 0.11.4.0 1502 | containers: 0.6.7 1503 | deepseq: 1.4.8.0 1504 | directory: 1.3.7.1 1505 | exceptions: 0.10.5 1506 | filepath: 1.4.2.2 1507 | ghc: 9.4.5 1508 | ghc-bignum: '1.3' 1509 | ghc-boot: 9.4.5 1510 | ghc-boot-th: 9.4.5 1511 | ghc-compact: 0.1.0.0 1512 | ghc-heap: 9.4.5 1513 | ghc-prim: 0.9.0 1514 | ghci: 9.4.5 1515 | haskeline: 0.8.2 1516 | hpc: 0.6.1.0 1517 | integer-gmp: '1.1' 1518 | libiserv: 9.4.5 1519 | mtl: 2.2.2 1520 | parsec: 3.1.16.1 1521 | pretty: 1.1.3.6 1522 | process: 1.6.16.0 1523 | rts: 1.0.2 1524 | stm: 2.5.1.0 1525 | system-cxx-std-lib: '1.0' 1526 | template-haskell: 2.19.0.0 1527 | terminfo: 0.4.1.5 1528 | text: 2.0.2 1529 | time: 1.12.2 1530 | transformers: 0.5.6.2 1531 | unix: 2.7.3 1532 | xhtml: 3000.2.2.1 1533 | ghc-9.4.6: 1534 | Cabal: 3.8.1.0 1535 | Cabal-syntax: 3.8.1.0 1536 | Win32: 2.12.0.1 1537 | array: 0.5.4.0 1538 | base: 4.17.2.0 1539 | binary: 0.8.9.1 1540 | bytestring: 0.11.5.1 1541 | containers: 0.6.7 1542 | deepseq: 1.4.8.0 1543 | directory: 1.3.7.1 1544 | exceptions: 0.10.5 1545 | filepath: 1.4.2.2 1546 | ghc: 9.4.6 1547 | ghc-bignum: '1.3' 1548 | ghc-boot: 9.4.6 1549 | ghc-boot-th: 9.4.6 1550 | ghc-compact: 0.1.0.0 1551 | ghc-heap: 9.4.6 1552 | ghc-prim: 0.9.1 1553 | ghci: 9.4.6 1554 | haskeline: 0.8.2 1555 | hpc: 0.6.1.0 1556 | integer-gmp: '1.1' 1557 | libiserv: 9.4.6 1558 | mtl: 2.2.2 1559 | parsec: 3.1.16.1 1560 | pretty: 1.1.3.6 1561 | process: 1.6.17.0 1562 | rts: 1.0.2 1563 | stm: 2.5.1.0 1564 | system-cxx-std-lib: '1.0' 1565 | template-haskell: 2.19.0.0 1566 | terminfo: 0.4.1.5 1567 | text: 2.0.2 1568 | time: 1.12.2 1569 | transformers: 0.5.6.2 1570 | unix: 2.7.3 1571 | xhtml: 3000.2.2.1 1572 | ghc-9.4.7: 1573 | Cabal: 3.8.1.0 1574 | Cabal-syntax: 3.8.1.0 1575 | Win32: 2.12.0.1 1576 | array: 0.5.4.0 1577 | base: 4.17.2.0 1578 | binary: 0.8.9.1 1579 | bytestring: 0.11.5.2 1580 | containers: 0.6.7 1581 | deepseq: 1.4.8.0 1582 | directory: 1.3.7.1 1583 | exceptions: 0.10.5 1584 | filepath: 1.4.2.2 1585 | ghc: 9.4.7 1586 | ghc-bignum: '1.3' 1587 | ghc-boot: 9.4.7 1588 | ghc-boot-th: 9.4.7 1589 | ghc-compact: 0.1.0.0 1590 | ghc-heap: 9.4.7 1591 | ghc-prim: 0.9.1 1592 | ghci: 9.4.7 1593 | haskeline: 0.8.2 1594 | hpc: 0.6.1.0 1595 | integer-gmp: '1.1' 1596 | libiserv: 9.4.7 1597 | mtl: 2.2.2 1598 | parsec: 3.1.16.1 1599 | pretty: 1.1.3.6 1600 | process: 1.6.17.0 1601 | rts: 1.0.2 1602 | stm: 2.5.1.0 1603 | system-cxx-std-lib: '1.0' 1604 | template-haskell: 2.19.0.0 1605 | terminfo: 0.4.1.5 1606 | text: 2.0.2 1607 | time: 1.12.2 1608 | transformers: 0.5.6.2 1609 | unix: 2.7.3 1610 | xhtml: 3000.2.2.1 1611 | ghc-9.4.8: 1612 | Cabal: 3.8.1.0 1613 | Cabal-syntax: 3.8.1.0 1614 | Win32: 2.12.0.1 1615 | array: 0.5.4.0 1616 | base: 4.17.2.1 1617 | binary: 0.8.9.1 1618 | bytestring: 0.11.5.3 1619 | containers: 0.6.7 1620 | deepseq: 1.4.8.0 1621 | directory: 1.3.7.1 1622 | exceptions: 0.10.5 1623 | filepath: 1.4.2.2 1624 | ghc: 9.4.8 1625 | ghc-bignum: '1.3' 1626 | ghc-boot: 9.4.8 1627 | ghc-boot-th: 9.4.8 1628 | ghc-compact: 0.1.0.0 1629 | ghc-heap: 9.4.8 1630 | ghc-prim: 0.9.1 1631 | ghci: 9.4.8 1632 | haskeline: 0.8.2 1633 | hpc: 0.6.1.0 1634 | integer-gmp: '1.1' 1635 | libiserv: 9.4.8 1636 | mtl: 2.2.2 1637 | parsec: 3.1.16.1 1638 | pretty: 1.1.3.6 1639 | process: 1.6.18.0 1640 | rts: 1.0.2 1641 | stm: 2.5.1.0 1642 | system-cxx-std-lib: '1.0' 1643 | template-haskell: 2.19.0.0 1644 | terminfo: 0.4.1.5 1645 | text: 2.0.2 1646 | time: 1.12.2 1647 | transformers: 0.5.6.2 1648 | unix: 2.7.3 1649 | xhtml: 3000.2.2.1 1650 | ghc-9.6.1: 1651 | Cabal: 3.10.1.0 1652 | Cabal-syntax: 3.10.1.0 1653 | Win32: 2.13.3.0 1654 | array: 0.5.5.0 1655 | base: 4.18.0.0 1656 | binary: 0.8.9.1 1657 | bytestring: 0.11.4.0 1658 | containers: 0.6.7 1659 | deepseq: 1.4.8.1 1660 | directory: 1.3.8.1 1661 | exceptions: 0.10.7 1662 | filepath: 1.4.100.1 1663 | ghc: 9.6.1 1664 | ghc-bignum: '1.3' 1665 | ghc-boot: 9.6.1 1666 | ghc-boot-th: 9.6.1 1667 | ghc-compact: 0.1.0.0 1668 | ghc-heap: 9.6.1 1669 | ghc-prim: 0.10.0 1670 | ghci: 9.6.1 1671 | haskeline: 0.8.2.1 1672 | hpc: 0.6.2.0 1673 | integer-gmp: '1.1' 1674 | libiserv: 9.6.1 1675 | mtl: 2.3.1 1676 | parsec: 3.1.16.1 1677 | pretty: 1.1.3.6 1678 | process: 1.6.17.0 1679 | rts: 1.0.2 1680 | stm: 2.5.1.0 1681 | system-cxx-std-lib: '1.0' 1682 | template-haskell: 2.20.0.0 1683 | terminfo: 0.4.1.6 1684 | text: 2.0.2 1685 | time: 1.12.2 1686 | transformers: 0.6.1.0 1687 | unix: 2.8.1.0 1688 | xhtml: 3000.2.2.1 1689 | ghc-9.6.2: 1690 | Cabal: 3.10.1.0 1691 | Cabal-syntax: 3.10.1.0 1692 | Win32: 2.13.3.0 1693 | array: 0.5.5.0 1694 | base: 4.18.0.0 1695 | binary: 0.8.9.1 1696 | bytestring: 0.11.4.0 1697 | containers: 0.6.7 1698 | deepseq: 1.4.8.1 1699 | directory: 1.3.8.1 1700 | exceptions: 0.10.7 1701 | filepath: 1.4.100.1 1702 | ghc: 9.6.2 1703 | ghc-bignum: '1.3' 1704 | ghc-boot: 9.6.2 1705 | ghc-boot-th: 9.6.2 1706 | ghc-compact: 0.1.0.0 1707 | ghc-heap: 9.6.2 1708 | ghc-prim: 0.10.0 1709 | ghci: 9.6.2 1710 | haskeline: 0.8.2.1 1711 | hpc: 0.6.2.0 1712 | integer-gmp: '1.1' 1713 | libiserv: 9.6.2 1714 | mtl: 2.3.1 1715 | parsec: 3.1.16.1 1716 | pretty: 1.1.3.6 1717 | process: 1.6.17.0 1718 | rts: 1.0.2 1719 | stm: 2.5.1.0 1720 | system-cxx-std-lib: '1.0' 1721 | template-haskell: 2.20.0.0 1722 | terminfo: 0.4.1.6 1723 | text: 2.0.2 1724 | time: 1.12.2 1725 | transformers: 0.6.1.0 1726 | unix: 2.8.1.0 1727 | xhtml: 3000.2.2.1 1728 | ghc-9.6.3: 1729 | Cabal: 3.10.1.0 1730 | Cabal-syntax: 3.10.1.0 1731 | Win32: 2.13.3.0 1732 | array: 0.5.5.0 1733 | base: 4.18.1.0 1734 | binary: 0.8.9.1 1735 | bytestring: 0.11.5.2 1736 | containers: 0.6.7 1737 | deepseq: 1.4.8.1 1738 | directory: 1.3.8.1 1739 | exceptions: 0.10.7 1740 | filepath: 1.4.100.4 1741 | ghc: 9.6.3 1742 | ghc-bignum: '1.3' 1743 | ghc-boot: 9.6.3 1744 | ghc-boot-th: 9.6.3 1745 | ghc-compact: 0.1.0.0 1746 | ghc-heap: 9.6.3 1747 | ghc-prim: 0.10.0 1748 | ghci: 9.6.3 1749 | haskeline: 0.8.2.1 1750 | hpc: 0.6.2.0 1751 | integer-gmp: '1.1' 1752 | libiserv: 9.6.3 1753 | mtl: 2.3.1 1754 | parsec: 3.1.16.1 1755 | pretty: 1.1.3.6 1756 | process: 1.6.17.0 1757 | rts: 1.0.2 1758 | stm: 2.5.1.0 1759 | system-cxx-std-lib: '1.0' 1760 | template-haskell: 2.20.0.0 1761 | terminfo: 0.4.1.6 1762 | text: 2.0.2 1763 | time: 1.12.2 1764 | transformers: 0.6.1.0 1765 | unix: 2.8.1.0 1766 | xhtml: 3000.2.2.1 1767 | ghc-9.6.4: 1768 | Cabal: 3.10.1.0 1769 | Cabal-syntax: 3.10.1.0 1770 | Win32: 2.13.3.0 1771 | array: 0.5.6.0 1772 | base: 4.18.2.0 1773 | binary: 0.8.9.1 1774 | bytestring: 0.11.5.3 1775 | containers: 0.6.7 1776 | deepseq: 1.4.8.1 1777 | directory: 1.3.8.1 1778 | exceptions: 0.10.7 1779 | filepath: 1.4.200.1 1780 | ghc: 9.6.4 1781 | ghc-bignum: '1.3' 1782 | ghc-boot: 9.6.4 1783 | ghc-boot-th: 9.6.4 1784 | ghc-compact: 0.1.0.0 1785 | ghc-heap: 9.6.4 1786 | ghc-prim: 0.10.0 1787 | ghci: 9.6.4 1788 | haskeline: 0.8.2.1 1789 | hpc: 0.6.2.0 1790 | integer-gmp: '1.1' 1791 | libiserv: 9.6.4 1792 | mtl: 2.3.1 1793 | parsec: 3.1.16.1 1794 | pretty: 1.1.3.6 1795 | process: 1.6.17.0 1796 | rts: 1.0.2 1797 | stm: 2.5.1.0 1798 | system-cxx-std-lib: '1.0' 1799 | template-haskell: 2.20.0.0 1800 | terminfo: 0.4.1.6 1801 | text: 2.0.2 1802 | time: 1.12.2 1803 | transformers: 0.6.1.0 1804 | unix: 2.8.4.0 1805 | xhtml: 3000.2.2.1 1806 | ghc-9.6.5: 1807 | Cabal: 3.10.3.0 1808 | Cabal-syntax: 3.10.3.0 1809 | Win32: 2.13.3.0 1810 | array: 0.5.6.0 1811 | base: 4.18.2.1 1812 | binary: 0.8.9.1 1813 | bytestring: 0.11.5.3 1814 | containers: 0.6.7 1815 | deepseq: 1.4.8.1 1816 | directory: 1.3.8.4 1817 | exceptions: 0.10.7 1818 | filepath: 1.4.300.1 1819 | ghc: 9.6.5 1820 | ghc-bignum: '1.3' 1821 | ghc-boot: 9.6.5 1822 | ghc-boot-th: 9.6.5 1823 | ghc-compact: 0.1.0.0 1824 | ghc-heap: 9.6.5 1825 | ghc-prim: 0.10.0 1826 | ghci: 9.6.5 1827 | haskeline: 0.8.2.1 1828 | hpc: 0.6.2.0 1829 | integer-gmp: '1.1' 1830 | libiserv: 9.6.5 1831 | mtl: 2.3.1 1832 | parsec: 3.1.16.1 1833 | pretty: 1.1.3.6 1834 | process: 1.6.19.0 1835 | rts: 1.0.2 1836 | stm: 2.5.1.0 1837 | system-cxx-std-lib: '1.0' 1838 | template-haskell: 2.20.0.0 1839 | terminfo: 0.4.1.6 1840 | text: 2.0.2 1841 | time: 1.12.2 1842 | transformers: 0.6.1.0 1843 | unix: 2.8.4.0 1844 | xhtml: 3000.2.2.1 1845 | ghc-9.6.6: 1846 | Cabal: 3.10.3.0 1847 | Cabal-syntax: 3.10.3.0 1848 | Win32: 2.13.3.0 1849 | array: 0.5.6.0 1850 | base: 4.18.2.1 1851 | binary: 0.8.9.1 1852 | bytestring: 0.11.5.3 1853 | containers: 0.6.7 1854 | deepseq: 1.4.8.1 1855 | directory: 1.3.8.5 1856 | exceptions: 0.10.7 1857 | filepath: 1.4.300.1 1858 | ghc: 9.6.6 1859 | ghc-bignum: '1.3' 1860 | ghc-boot: 9.6.6 1861 | ghc-boot-th: 9.6.6 1862 | ghc-compact: 0.1.0.0 1863 | ghc-heap: 9.6.6 1864 | ghc-prim: 0.10.0 1865 | ghci: 9.6.6 1866 | haskeline: 0.8.2.1 1867 | hpc: 0.6.2.0 1868 | integer-gmp: '1.1' 1869 | libiserv: 9.6.6 1870 | mtl: 2.3.1 1871 | parsec: 3.1.16.1 1872 | pretty: 1.1.3.6 1873 | process: 1.6.19.0 1874 | rts: 1.0.2 1875 | stm: 2.5.1.0 1876 | system-cxx-std-lib: '1.0' 1877 | template-haskell: 2.20.0.0 1878 | terminfo: 0.4.1.6 1879 | text: 2.0.2 1880 | time: 1.12.2 1881 | transformers: 0.6.1.0 1882 | unix: 2.8.4.0 1883 | xhtml: 3000.2.2.1 1884 | ghc-9.6.7: 1885 | Cabal: 3.10.3.0 1886 | Cabal-syntax: 3.10.3.0 1887 | Win32: 2.13.3.0 1888 | array: 0.5.8.0 1889 | base: 4.18.3.0 1890 | binary: 0.8.9.1 1891 | bytestring: 0.11.5.4 1892 | containers: 0.6.7 1893 | deepseq: 1.4.8.1 1894 | directory: 1.3.8.5 1895 | exceptions: 0.10.7 1896 | filepath: 1.4.301.0 1897 | ghc: 9.6.7 1898 | ghc-bignum: '1.3' 1899 | ghc-boot: 9.6.7 1900 | ghc-boot-th: 9.6.7 1901 | ghc-compact: 0.1.0.0 1902 | ghc-heap: 9.6.7 1903 | ghc-prim: 0.10.0 1904 | ghci: 9.6.7 1905 | haskeline: 0.8.2.1 1906 | hpc: 0.6.2.0 1907 | integer-gmp: '1.1' 1908 | libiserv: 9.6.7 1909 | mtl: 2.3.1 1910 | parsec: 3.1.16.1 1911 | pretty: 1.1.3.6 1912 | process: 1.6.19.0 1913 | rts: 1.0.2 1914 | stm: 2.5.1.0 1915 | system-cxx-std-lib: '1.0' 1916 | template-haskell: 2.20.0.0 1917 | terminfo: 0.4.1.6 1918 | text: 2.0.2 1919 | time: 1.12.2 1920 | transformers: 0.6.1.0 1921 | unix: 2.8.6.0 1922 | xhtml: 3000.2.2.1 1923 | ghc-9.8.1: 1924 | Cabal: 3.10.2.0 1925 | Cabal-syntax: 3.10.2.0 1926 | Win32: 2.13.4.0 1927 | array: 0.5.6.0 1928 | base: 4.19.0.0 1929 | binary: 0.8.9.1 1930 | bytestring: 0.12.0.2 1931 | containers: 0.6.8 1932 | deepseq: 1.5.0.0 1933 | directory: 1.3.8.1 1934 | exceptions: 0.10.7 1935 | filepath: 1.4.100.4 1936 | ghc: 9.8.1 1937 | ghc-bignum: '1.3' 1938 | ghc-boot: 9.8.1 1939 | ghc-boot-th: 9.8.1 1940 | ghc-compact: 0.1.0.0 1941 | ghc-heap: 9.8.1 1942 | ghc-prim: 0.11.0 1943 | ghci: 9.8.1 1944 | haskeline: 0.8.2.1 1945 | hpc: 0.7.0.0 1946 | integer-gmp: '1.1' 1947 | mtl: 2.3.1 1948 | parsec: 3.1.17.0 1949 | pretty: 1.1.3.6 1950 | process: 1.6.18.0 1951 | rts: 1.0.2 1952 | semaphore-compat: 1.0.0 1953 | stm: 2.5.2.1 1954 | system-cxx-std-lib: '1.0' 1955 | template-haskell: 2.21.0.0 1956 | terminfo: 0.4.1.6 1957 | text: '2.1' 1958 | time: 1.12.2 1959 | transformers: 0.6.1.0 1960 | unix: 2.8.3.0 1961 | xhtml: 3000.2.2.1 1962 | ghc-9.8.2: 1963 | Cabal: 3.10.2.0 1964 | Cabal-syntax: 3.10.2.0 1965 | Win32: 2.13.4.0 1966 | array: 0.5.6.0 1967 | base: 4.19.1.0 1968 | binary: 0.8.9.1 1969 | bytestring: 0.12.1.0 1970 | containers: 0.6.8 1971 | deepseq: 1.5.0.0 1972 | directory: 1.3.8.1 1973 | exceptions: 0.10.7 1974 | filepath: 1.4.200.1 1975 | ghc: 9.8.2 1976 | ghc-bignum: '1.3' 1977 | ghc-boot: 9.8.2 1978 | ghc-boot-th: 9.8.2 1979 | ghc-compact: 0.1.0.0 1980 | ghc-heap: 9.8.2 1981 | ghc-prim: 0.11.0 1982 | ghci: 9.8.2 1983 | haskeline: 0.8.2.1 1984 | hpc: 0.7.0.0 1985 | integer-gmp: '1.1' 1986 | mtl: 2.3.1 1987 | parsec: 3.1.17.0 1988 | pretty: 1.1.3.6 1989 | process: 1.6.18.0 1990 | rts: 1.0.2 1991 | semaphore-compat: 1.0.0 1992 | stm: 2.5.2.1 1993 | system-cxx-std-lib: '1.0' 1994 | template-haskell: 2.21.0.0 1995 | terminfo: 0.4.1.6 1996 | text: 2.1.1 1997 | time: 1.12.2 1998 | transformers: 0.6.1.0 1999 | unix: 2.8.4.0 2000 | xhtml: 3000.2.2.1 2001 | ghc-9.8.3: 2002 | Cabal: 3.10.3.0 2003 | Cabal-syntax: 3.10.3.0 2004 | Win32: 2.13.4.0 2005 | array: 0.5.8.0 2006 | base: 4.19.2.0 2007 | binary: 0.8.9.1 2008 | bytestring: 0.12.1.0 2009 | containers: 0.6.8 2010 | deepseq: 1.5.1.0 2011 | directory: 1.3.8.5 2012 | exceptions: 0.10.7 2013 | filepath: 1.4.200.1 2014 | ghc: 9.8.3 2015 | ghc-bignum: '1.3' 2016 | ghc-boot: 9.8.3 2017 | ghc-boot-th: 9.8.3 2018 | ghc-compact: 0.1.0.0 2019 | ghc-heap: 9.8.3 2020 | ghc-prim: 0.11.0 2021 | ghci: 9.8.3 2022 | haskeline: 0.8.2.1 2023 | hpc: 0.7.0.0 2024 | integer-gmp: '1.1' 2025 | mtl: 2.3.1 2026 | parsec: 3.1.17.0 2027 | pretty: 1.1.3.6 2028 | process: 1.6.25.0 2029 | rts: 1.0.2 2030 | semaphore-compat: 1.0.0 2031 | stm: 2.5.3.1 2032 | system-cxx-std-lib: '1.0' 2033 | template-haskell: 2.21.0.0 2034 | terminfo: 0.4.1.6 2035 | text: 2.1.1 2036 | time: 1.12.2 2037 | transformers: 0.6.1.0 2038 | unix: 2.8.4.0 2039 | xhtml: 3000.2.2.1 2040 | ghc-9.8.4: 2041 | Cabal: 3.10.3.0 2042 | Cabal-syntax: 3.10.3.0 2043 | Win32: 2.13.4.0 2044 | array: 0.5.8.0 2045 | base: 4.19.2.0 2046 | binary: 0.8.9.1 2047 | bytestring: 0.12.1.0 2048 | containers: 0.6.8 2049 | deepseq: 1.5.1.0 2050 | directory: 1.3.8.5 2051 | exceptions: 0.10.7 2052 | filepath: 1.4.301.0 2053 | ghc: 9.8.4 2054 | ghc-bignum: '1.3' 2055 | ghc-boot: 9.8.4 2056 | ghc-boot-th: 9.8.4 2057 | ghc-compact: 0.1.0.0 2058 | ghc-heap: 9.8.4 2059 | ghc-prim: 0.11.0 2060 | ghci: 9.8.4 2061 | haskeline: 0.8.2.1 2062 | hpc: 0.7.0.0 2063 | integer-gmp: '1.1' 2064 | mtl: 2.3.1 2065 | parsec: 3.1.17.0 2066 | pretty: 1.1.3.6 2067 | process: 1.6.25.0 2068 | rts: 1.0.2 2069 | semaphore-compat: 1.0.0 2070 | stm: 2.5.3.1 2071 | system-cxx-std-lib: '1.0' 2072 | template-haskell: 2.21.0.0 2073 | terminfo: 0.4.1.6 2074 | text: 2.1.1 2075 | time: 1.12.2 2076 | transformers: 0.6.1.0 2077 | unix: 2.8.6.0 2078 | xhtml: 3000.2.2.1 2079 | ghc-9.10.1: 2080 | Cabal: 3.12.0.0 2081 | Cabal-syntax: 3.12.0.0 2082 | Win32: 2.14.0.0 2083 | array: 0.5.7.0 2084 | base: 4.20.0.0 2085 | binary: 0.8.9.2 2086 | bytestring: 0.12.1.0 2087 | containers: '0.7' 2088 | deepseq: 1.5.0.0 2089 | directory: 1.3.8.3 2090 | exceptions: 0.10.7 2091 | filepath: 1.5.2.0 2092 | ghc: 9.10.1 2093 | ghc-bignum: '1.3' 2094 | ghc-boot: 9.10.1 2095 | ghc-boot-th: 9.10.1 2096 | ghc-compact: 0.1.0.0 2097 | ghc-experimental: 0.1.0.0 2098 | ghc-heap: 9.10.1 2099 | ghc-internal: 9.1001.0 2100 | ghc-platform: 0.1.0.0 2101 | ghc-prim: 0.11.0 2102 | ghc-toolchain: 0.1.0.0 2103 | ghci: 9.10.1 2104 | haskeline: 0.8.2.1 2105 | hpc: 0.7.0.1 2106 | integer-gmp: '1.1' 2107 | mtl: 2.3.1 2108 | os-string: 2.0.2 2109 | parsec: 3.1.17.0 2110 | pretty: 1.1.3.6 2111 | process: 1.6.19.0 2112 | rts: 1.0.2 2113 | semaphore-compat: 1.0.0 2114 | stm: 2.5.3.1 2115 | system-cxx-std-lib: '1.0' 2116 | template-haskell: 2.22.0.0 2117 | terminfo: 0.4.1.6 2118 | text: 2.1.1 2119 | time: 1.12.2 2120 | transformers: 0.6.1.1 2121 | unix: 2.8.5.1 2122 | xhtml: 3000.2.2.1 2123 | ghc-9.10.2: 2124 | Cabal: 3.12.1.0 2125 | Cabal-syntax: 3.12.1.0 2126 | Win32: 2.14.1.0 2127 | array: 0.5.8.0 2128 | base: 4.20.1.0 2129 | binary: 0.8.9.3 2130 | bytestring: 0.12.2.0 2131 | containers: '0.7' 2132 | deepseq: 1.5.0.0 2133 | directory: 1.3.8.5 2134 | exceptions: 0.10.9 2135 | filepath: 1.5.4.0 2136 | ghc: 9.10.2 2137 | ghc-bignum: '1.3' 2138 | ghc-boot: 9.10.2 2139 | ghc-boot-th: 9.10.2 2140 | ghc-compact: 0.1.0.0 2141 | ghc-experimental: 9.1002.0 2142 | ghc-heap: 9.10.2 2143 | ghc-internal: 9.1002.0 2144 | ghc-platform: 0.1.0.0 2145 | ghc-prim: 0.12.0 2146 | ghc-toolchain: 0.1.0.0 2147 | ghci: 9.10.2 2148 | haskeline: 0.8.2.1 2149 | hpc: 0.7.0.2 2150 | integer-gmp: '1.1' 2151 | mtl: 2.3.1 2152 | os-string: 2.0.4 2153 | parsec: 3.1.18.0 2154 | pretty: 1.1.3.6 2155 | process: 1.6.25.0 2156 | rts: 1.0.2 2157 | semaphore-compat: 1.0.0 2158 | stm: 2.5.3.1 2159 | system-cxx-std-lib: '1.0' 2160 | template-haskell: 2.22.0.0 2161 | terminfo: 0.4.1.7 2162 | text: 2.1.2 2163 | time: 1.12.2 2164 | transformers: 0.6.1.1 2165 | unix: 2.8.6.0 2166 | xhtml: 3000.2.2.1 2167 | ghc-9.12.1: 2168 | Cabal: 3.14.1.0 2169 | Cabal-syntax: 3.14.1.0 2170 | Win32: 2.14.1.0 2171 | array: 0.5.8.0 2172 | base: 4.21.0.0 2173 | binary: 0.8.9.2 2174 | bytestring: 0.12.2.0 2175 | containers: '0.7' 2176 | deepseq: 1.5.1.0 2177 | directory: 1.3.9.0 2178 | exceptions: 0.10.9 2179 | file-io: 0.1.5 2180 | filepath: 1.5.4.0 2181 | ghc: 9.12.1 2182 | ghc-bignum: '1.3' 2183 | ghc-boot: 9.12.1 2184 | ghc-boot-th: 9.12.1 2185 | ghc-compact: 0.1.0.0 2186 | ghc-experimental: 9.1201.0 2187 | ghc-heap: 9.12.1 2188 | ghc-internal: 9.1201.0 2189 | ghc-platform: 0.1.0.0 2190 | ghc-prim: 0.13.0 2191 | ghc-toolchain: 0.1.0.0 2192 | ghci: 9.12.1 2193 | haddock-api: 2.30.0 2194 | haddock-library: 1.11.0 2195 | haskeline: 0.8.2.1 2196 | hpc: 0.7.0.1 2197 | integer-gmp: '1.1' 2198 | mtl: 2.3.1 2199 | os-string: 2.0.7 2200 | parsec: 3.1.17.0 2201 | pretty: 1.1.3.6 2202 | process: 1.6.25.0 2203 | rts: 1.0.2 2204 | semaphore-compat: 1.0.0 2205 | stm: 2.5.3.1 2206 | system-cxx-std-lib: '1.0' 2207 | template-haskell: 2.23.0.0 2208 | terminfo: 0.4.1.6 2209 | text: 2.1.2 2210 | time: '1.14' 2211 | transformers: 0.6.1.2 2212 | unix: 2.8.6.0 2213 | xhtml: 3000.2.2.1 2214 | ghc-9.12.2: 2215 | Cabal: 3.14.1.0 2216 | Cabal-syntax: 3.14.1.0 2217 | Win32: 2.14.1.0 2218 | array: 0.5.8.0 2219 | base: 4.21.0.0 2220 | binary: 0.8.9.3 2221 | bytestring: 0.12.2.0 2222 | containers: '0.7' 2223 | deepseq: 1.5.1.0 2224 | directory: 1.3.9.0 2225 | exceptions: 0.10.9 2226 | file-io: 0.1.5 2227 | filepath: 1.5.4.0 2228 | ghc: 9.12.2 2229 | ghc-bignum: '1.3' 2230 | ghc-boot: 9.12.2 2231 | ghc-boot-th: 9.12.2 2232 | ghc-compact: 0.1.0.0 2233 | ghc-experimental: 9.1202.0 2234 | ghc-heap: 9.12.2 2235 | ghc-internal: 9.1202.0 2236 | ghc-platform: 0.1.0.0 2237 | ghc-prim: 0.13.0 2238 | ghc-toolchain: 0.1.0.0 2239 | ghci: 9.12.2 2240 | haddock-api: 2.30.0 2241 | haddock-library: 1.11.0 2242 | haskeline: 0.8.2.1 2243 | hpc: 0.7.0.2 2244 | integer-gmp: '1.1' 2245 | mtl: 2.3.1 2246 | os-string: 2.0.7 2247 | parsec: 3.1.18.0 2248 | pretty: 1.1.3.6 2249 | process: 1.6.25.0 2250 | rts: 1.0.2 2251 | semaphore-compat: 1.0.0 2252 | stm: 2.5.3.1 2253 | system-cxx-std-lib: '1.0' 2254 | template-haskell: 2.23.0.0 2255 | terminfo: 0.4.1.7 2256 | text: 2.1.2 2257 | time: '1.14' 2258 | transformers: 0.6.1.2 2259 | unix: 2.8.6.0 2260 | xhtml: 3000.2.2.1 2261 | -------------------------------------------------------------------------------- /stack/releases.yaml: -------------------------------------------------------------------------------- 1 | #- name: Linux 32-bit, libgmp4 for CentOS 6.x 2 | # pattern: linux-i386-gmp4 3 | #- name: Linux 32-bit, standard 4 | # pattern: linux-i386 5 | # TODO: REMOVE IN NEXT RELEASE 6 | - name: Linux 64-bit (deprecated static) 7 | pattern: linux-x86_64-static 8 | # - name: Linux 64-bit, libgmp4 for CentOS 6.x 9 | # pattern: linux-x86_64-gmp4 10 | - name: Linux 64-bit (static) 11 | pattern: linux-x86_64 12 | # - name: Linux ARMv7 13 | # pattern: linux-arm 14 | - name: Linux AArch64 15 | pattern: linux-aarch64 16 | - name: MacOS 64-bit 17 | pattern: osx-x86_64 18 | # - name: FreeBSD 64-bit 19 | # pattern: freebsd-x86_64 20 | # - name: Windows 32-bit Installer 21 | # pattern: windows-i386-installer 22 | # - name: Windows 32-bit 23 | # pattern: windows-i386 24 | - name: Windows 64-bit Installer 25 | pattern: windows-x86_64-installer 26 | - name: Windows 64-bit 27 | pattern: windows-x86_64 28 | -------------------------------------------------------------------------------- /stack/stack-setup.yaml: -------------------------------------------------------------------------------- 1 | # These strings remain for compatibility with old versions of stack. 2 | sevenzexe: "https://github.com/fpco/minghc/blob/master/bin/7z.exe?raw=true" 3 | sevenzdll: "https://github.com/fpco/minghc/blob/master/bin/7z.dll?raw=true" 4 | 5 | sevenzexe-info: 6 | url: "https://github.com/fpco/minghc/blob/master/bin/7z.exe?raw=true" 7 | content-length: 73728 8 | sha1: 187dff8a3327da87050f678579816e5bae40c632 9 | sevenzdll-info: 10 | url: "https://github.com/fpco/minghc/blob/master/bin/7z.dll?raw=true" 11 | content-length: 447488 12 | sha1: 168a288d4456f0473f66e86a2d6fec4eb6f4b993 13 | portable-git: 14 | version: 2.4.5.1 15 | url: "https://github.com/git-for-windows/git/releases/download/v2.4.5.windows.1/PortableGit-2.4.5.1-4th-release-candidate-32-bit.7z.exe" 16 | content-length: 44221160 17 | sha1: 3df088915f67297cb5ad3ab73ba9361fcb5e44ea 18 | ghc: 19 | linux32: 20 | 7.8: 21 | version: 7.8.4 22 | url: "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-i386-unknown-linux-deb7.tar.xz" 23 | content-length: 69743420 24 | sha1: a5d4f65b9b063eae476657cb9b93277609c42cf1 25 | 7.10: 26 | version: 7.10.2 27 | url: "https://www.haskell.org/ghc/dist/7.10.2/ghc-7.10.2-i386-unknown-linux-deb7.tar.xz" 28 | content-length: 90779224 29 | sha1: d02d88a2049fb7e9e375c54013a40229b41758f2 30 | 31 | linux64: 32 | 7.8: 33 | version: 7.8.4 34 | url: "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz" 35 | content-length: 70325112 36 | sha1: 11aec12d4bb27f6fa59dcc8535a7a3b3be8cb787 37 | 7.10: 38 | version: 7.10.2 39 | url: "https://www.haskell.org/ghc/dist/7.10.2/ghc-7.10.2-x86_64-unknown-linux-deb7.tar.xz" 40 | content-length: 91852904 41 | sha1: c32eff3ecb16eeb9a8682ae2222574a6d1a68bc1 42 | 43 | linux32-gmp4: 44 | 7.8: 45 | version: 7.8.4 46 | url: "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-i386-unknown-linux-centos65.tar.xz" 47 | content-length: 61873796 48 | sha1: 0ec1f10b38e1e94b41e260855f4744f271f462f2 49 | 7.10: 50 | version: 7.10.2 51 | url: "https://www.haskell.org/ghc/dist/7.10.2/ghc-7.10.2-i386-unknown-linux-centos66.tar.xz" 52 | content-length: 87824296 53 | sha1: f37d2a1323c191ef9372e1256220691ec2f84b40 54 | 55 | linux64-gmp4: 56 | 7.8: 57 | version: 7.8.4 58 | url: "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-unknown-linux-centos65.tar.xz" 59 | content-length: 61654528 60 | sha1: d204e2a1344734d1f60c79cf330b5e3f40b672a0 61 | 7.10: 62 | version: 7.10.2 63 | url: "https://www.haskell.org/ghc/dist/7.10.2/ghc-7.10.2-x86_64-unknown-linux-centos66.tar.xz" 64 | content-length: 88804220 65 | sha1: e6f128245d66cd53711b1829122b38ba8ded70f1 66 | 67 | macosx: 68 | 7.8: 69 | version: 7.8.4 70 | url: "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-apple-darwin.tar.bz2" 71 | content-length: 129602990 72 | sha1: b7aff3983e9005b74d90c5a4fd7c837f9e752923 73 | 7.10: 74 | version: 7.10.2 75 | url: "https://www.haskell.org/ghc/dist/7.10.2/ghc-7.10.2-x86_64-apple-darwin.tar.bz2" 76 | content-length: 146921830 77 | sha1: 0a043340952fad211f4c9780bde873e0d9e4d331 78 | 79 | windowsintegersimple32: 80 | 7.8: 81 | version: 7.8.4 82 | url: "https://s3.amazonaws.com/download.fpcomplete.com/ghc/ghc-7.8.4-i386-unknown-mingw32-integer-simple.tar.xz" 83 | content-length: 78390236 84 | sha1: c02ec0f80db83ba081943204894e6e83b7d378ba 85 | 7.10: 86 | version: 7.10.2 87 | url: "https://s3.amazonaws.com/download.fpcomplete.com/ghc/ghc-7.10.2-i386-unknown-mingw32-integer-simple.tar.xz" 88 | content-length: 86325092 89 | sha1: 346a193ac16bf8fc050bb0de4355a3d298dfca51 90 | 91 | windowsintegersimple64: 92 | 7.8: 93 | version: 7.8.4 94 | url: "https://s3.amazonaws.com/download.fpcomplete.com/ghc/ghc-7.8.4-x86_64-unknown-mingw32-integer-simple.tar.xz" 95 | content-length: 94397496 96 | sha1: 2b7c9e11990ba6e91032fb935d441fde8106c9cf 97 | 7.10: 98 | version: 7.10.2 99 | url: "https://s3.amazonaws.com/download.fpcomplete.com/ghc/ghc-7.10.2-x86_64-unknown-mingw32-integer-simple.tar.xz" 100 | content-length: 103028936 101 | sha1: 1f0ffcb4dedc748a82118ee42ee1a4ebd4a8465a 102 | 103 | windows32: 104 | 7.8: 105 | version: 7.8.4 106 | url: "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-i386-unknown-mingw32.tar.xz" 107 | content-length: 75057588 108 | sha1: 9acfb321f1f8bbfcb6d6b58f6d88fe93f0abaf63 109 | 7.10: 110 | version: 7.10.2 111 | url: "https://www.haskell.org/ghc/dist/7.10.2/ghc-7.10.2-i386-unknown-mingw32.tar.xz" 112 | content-length: 103096112 113 | sha1: e7dd5be85f5fb7f1fe90c590cfe354787472b715 114 | 115 | windows64: 116 | 7.8: 117 | version: 7.8.4 118 | url: "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-unknown-mingw32.tar.xz" 119 | content-length: 92141344 120 | sha1: cec5b4c4fe612ac1fe9302f491ae58ac44812b26 121 | 7.10: 122 | version: 7.10.2 123 | url: "https://www.haskell.org/ghc/dist/7.10.2/ghc-7.10.2-x86_64-unknown-mingw32.tar.xz" 124 | content-length: 134230828 125 | sha1: 5372a4ed3cb393bed7e1b0e0c454ecb051e85ddd 126 | 127 | freebsd32: 128 | 7.8: 129 | version: 7.8.4 130 | url: "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-i386-portbld-freebsd.tar.xz" 131 | content-length: 68504948 132 | sha1: fa6164a1408b94c719957b23f043da8539376351 133 | 7.10: 134 | version: 7.10.2 135 | url: "https://www.haskell.org/ghc/dist/7.10.2/ghc-7.10.2-i386-portbld-freebsd.tar.xz" 136 | content-length: 87968692 137 | sha1: 6925a297932d1922f8e6c9f4ad0f0ccbdd3ea5b9 138 | 139 | freebsd64: 140 | 7.8: 141 | version: 7.8.4 142 | url: "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-portbld-freebsd.tar.xz" 143 | content-length: 68223736 144 | sha1: 3507549290a8226febb1284a50c51a5f10261d94 145 | 7.10: 146 | version: 7.10.2 147 | url: "https://www.haskell.org/ghc/dist/7.10.2/ghc-7.10.2-x86_64-portbld-freebsd.tar.xz" 148 | content-length: 88841932 149 | sha1: 43372109b84f55cf9138982f84f39cd178d95975 150 | 151 | # Untested so far, see: https://github.com/commercialhaskell/stack/issues/416#issuecomment-115553835 152 | openbsd64: 153 | 7.8: 154 | version: 7.8.3 155 | url: "https://openbsd.dead-parrot.de/distfiles/ghc-7.8.3.20150623-amd64-unknown-openbsd.tar.bz2" 156 | content-length: 56087622 157 | sha1: 33e5d2fcc9be1e3123002ba06f76a3f4989c23a9 158 | -------------------------------------------------------------------------------- /stack/update-global-hints.hs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env stack 2 | -- stack --resolver lts-18.5 script 3 | {-# LANGUAGE NoImplicitPrelude #-} 4 | {-# LANGUAGE OverloadedStrings #-} 5 | import Data.Yaml 6 | import RIO 7 | import qualified RIO.Map as Map 8 | import qualified RIO.Text as T 9 | import System.Environment (getArgs) 10 | import RIO.Process 11 | import Distribution.Types.PackageId 12 | import qualified RIO.ByteString.Lazy as BL 13 | import qualified Distribution.Text as DT (simpleParse, display) 14 | 15 | import Text.HTML.DOM (parseBSChunks) 16 | import Text.XML.Cursor 17 | import Data.Text.Encoding (decodeUtf8, encodeUtf8) 18 | import Network.HTTP.Simple 19 | 20 | comment :: ByteString 21 | comment = 22 | "# Packages found in the global package database for each GHC version.\n\ 23 | \# Used by post-pantry Stack (merged to master August 2018).\n\ 24 | \# This file auto-generated by update-global-hints.hs.\n\ 25 | \# Please ensure this is updated when a new version of GHC is released.\n\n" 26 | 27 | type GhcVer = Text 28 | type PackageId' = Text 29 | type PackageVersion = Text 30 | type GlobalHintsFragment = Map GhcVer (Map PackageId' PackageVersion) 31 | 32 | globalHintsFile = "global-hints.yaml" 33 | 34 | readGlobalHintsFile :: RIO SimpleApp GlobalHintsFragment 35 | readGlobalHintsFile = do 36 | -- liftIO $ decodeFileThrow globalHintsFile >>= \v -> error (show (v :: Value)) 37 | eHints <- liftIO $ decodeFileEither globalHintsFile 38 | case eHints of 39 | Left e -> do 40 | logError "Could not open existing global-hints.yaml" 41 | logError $ displayShow e 42 | pure mempty 43 | Right x -> pure x 44 | 45 | writeGlobalHintsFile :: GlobalHintsFragment -> RIO SimpleApp () 46 | writeGlobalHintsFile hints = 47 | writeFileBinary globalHintsFile $ comment <> encode hints 48 | 49 | globalPackageDbHints :: [GhcVer] -> RIO SimpleApp GlobalHintsFragment 50 | globalPackageDbHints vers = do 51 | pairs <- for vers $ \ghcVer -> do 52 | let args' = 53 | [ "--setup-info-yaml=./stack-setup-2.yaml" 54 | , "--resolver" 55 | , T.unpack ghcVer 56 | , "exec" 57 | , "--no-ghc-package-path" 58 | , "--" 59 | , "ghc-pkg" 60 | , "list" 61 | , "--global" 62 | , "--no-user-package-db" 63 | , "--simple-output" 64 | ] 65 | outLBS <- proc "stack" args' readProcessStdout_ 66 | outText <- 67 | case decodeUtf8' $ BL.toStrict outLBS of 68 | Left e -> throwIO e 69 | Right x -> pure x 70 | pairs <- for (T.words outText) $ \pkgver -> 71 | case DT.simpleParse $ T.unpack pkgver of 72 | Nothing -> error $ "Invalid package id: " ++ show pkgver 73 | Just (PackageIdentifier name ver) -> 74 | pure (T.pack $ DT.display name, T.pack $ DT.display ver) 75 | pure (ghcVer, Map.fromList pairs) 76 | pure $ Map.fromList pairs 77 | 78 | scrapeGhcReleaseNotes :: [GhcVer] -> RIO SimpleApp GlobalHintsFragment 79 | scrapeGhcReleaseNotes vers = do 80 | pairs <- for vers myScrapeURL 81 | pure $ Map.fromList pairs 82 | where 83 | url ver = T.unpack $ mconcat 84 | [ "https://downloads.haskell.org/~ghc/" 85 | , ver' 86 | , "/docs/html/users_guide/" 87 | , ver' 88 | , "-notes.html" 89 | ] where ver' = fromMaybe ver (T.stripPrefix "ghc-" ver) 90 | myScrapeURL ghcVer = do 91 | let url' = url ghcVer 92 | req <- parseRequest url' 93 | response <- httpBS req 94 | let doc = parseBSChunks [getResponseBody response] 95 | cursor = fromDocument doc 96 | rows = cursor $// attributeIs "id" "included-libraries" &// element "tbody" &/ element "tr" 97 | pairs <- traverse toPair rows 98 | if null pairs 99 | then error $ "Unable to parse HTML at " ++ url' 100 | else pure (ghcVer, Map.fromList pairs) 101 | 102 | toPair row = 103 | case map (\td -> fold $ td $// content) $ row $/ element "td" of 104 | (pkg:ver:_) -> pure (pkg, ver) 105 | _ -> error $ "Could not parse row " ++ show row 106 | 107 | globalHintsFragmentProviders :: [GhcVer] -> [RIO SimpleApp GlobalHintsFragment] 108 | globalHintsFragmentProviders vers = 109 | [ globalPackageDbHints vers 110 | , scrapeGhcReleaseNotes vers 111 | , readGlobalHintsFile 112 | ] 113 | 114 | -- | Combines fragments point-wise and checks if they agree on common package 115 | -- ids. 116 | combineFragmentList :: [GlobalHintsFragment] -> GlobalHintsFragment 117 | combineFragmentList = foldr combine mempty 118 | where 119 | combine = Map.unionWith (Map.unionWithKey combinePoint) 120 | combinePoint pkg ver1 ver2 121 | | ver1 == ver2 = ver1 122 | | otherwise = 123 | -- ver1 -- If you want to suppress the error below 124 | error $ concat 125 | [ "Mismatch between different global-hints fragment providers. " 126 | , "Check the output of the different providers for package " 127 | , show (T.unpack pkg) 128 | , ". Mismatching versions were " 129 | , show (T.unpack ver1) 130 | , " and " 131 | , show (T.unpack ver2) 132 | , "." 133 | ] 134 | 135 | main :: IO () 136 | main = runSimpleApp $ do 137 | args <- liftIO getArgs 138 | when (null args) $ error "Please provide a list of GHC versions, e.g. ./update-global-hints.hs ghc-8.4.3 ghc-8.4.2" 139 | let vers = map T.pack args 140 | hints <- combineFragmentList <$> sequence (globalHintsFragmentProviders vers) 141 | writeGlobalHintsFile hints 142 | -------------------------------------------------------------------------------- /stackage-cli/linux64/ghc-7.10-links.yaml: -------------------------------------------------------------------------------- 1 | - 2 | name: ghc 3 | version: 7.10.1 4 | url: http://download.fpcomplete.com/stackage-cli/linux64/ghc-7.10.1-x86_64-unknown-linux-deb7.tar.xz 5 | sha1: c256f5975613ab49aeb2375b1e60cd8a348ed404 6 | instructions: 7 | - tar xJf ghc-7.10.1-x86_64-unknown-linux-deb7.tar.xz 8 | - rm ghc-7.10.1-x86_64-unknown-linux-deb7.tar.xz 9 | - cd ghc-7.10.1 10 | - ./configure --prefix=`pwd` 11 | - make install 12 | - cd .. 13 | - 14 | name: cabal 15 | version: 1.22.4.0 16 | url: http://download.fpcomplete.com/stackage-cli/linux64/cabal-install-1.22.4.0.tar.gz 17 | sha1: b98eea96d321cdeed83a201c192dac116e786ec2 18 | instructions: 19 | - tar xzf cabal-install-1.22.4.0.tar.gz 20 | - rm cabal-install-1.22.4.0.tar.gz 21 | - cd cabal-install-1.22.4.0 22 | - ./bootstrap.sh 23 | - cd .. 24 | - rm -r cabal-install-1.22.4.0 25 | - mkdir cabal-1.22.4.0 26 | - mv $HOME/.cabal/bin/cabal cabal-1.22.4.0/bin/cabal 27 | - 28 | name: stackage 29 | version: 0.7.1.0 30 | url: http://download.fpcomplete.com/stackage-cli/linux64/stackage-0.7.1.0.tar.xz 31 | sha1: 2062ea5e71a836371f8388a4eba66cd10a31d701 32 | instructions: 33 | - tar xJf stackage-0.7.1.0.tar.xz 34 | - rm stackage-0.7.1.0.tar.xz 35 | - 36 | name: happy 37 | version: 1.19.5 38 | url: http://download.fpcomplete.com/stackage-cli/linux64/happy-1.19.5.tar.xz 39 | sha1: 8ec42f50cb37adb08753266c0247b90c2c306efd 40 | instructions: 41 | - tar xJf happy-1.19.5.tar.xz 42 | - rm happy-1.19.5.tar.xz 43 | - 44 | name: alex 45 | version: 3.1.4 46 | url: http://download.fpcomplete.com/stackage-cli/linux64/alex-3.1.4.tar.xz 47 | sha1: 0cf5969cca4abc221ae41235a7f0a39ad0d66473 48 | instructions: 49 | - tar xJf alex-3.1.4.tar.xz 50 | - rm alex-3.1.4.tar.xz 51 | -------------------------------------------------------------------------------- /stackage-cli/linux64/ghc-7.8-links.yaml: -------------------------------------------------------------------------------- 1 | - 2 | name: ghc 3 | version: 7.8.4 4 | url: http://download.fpcomplete.com/stackage-cli/linux64/ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz 5 | sha1: 11aec12d4bb27f6fa59dcc8535a7a3b3be8cb787 6 | instructions: 7 | - tar xJf ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz 8 | - cd ghc-7.8.4 9 | - ./configure --prefix=`pwd` 10 | - make install 11 | - cd .. 12 | - rm ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz 13 | - 14 | name: cabal 15 | version: 1.22.4.0 16 | url: http://download.fpcomplete.com/stackage-cli/linux64/cabal-install-1.22.4.0.tar.gz 17 | sha1: b98eea96d321cdeed83a201c192dac116e786ec2 18 | instructions: 19 | - tar xzf cabal-install-1.22.4.0.tar.gz 20 | - rm cabal-install-1.22.4.0.tar.gz 21 | - cd cabal-install-1.22.4.0 22 | - ./bootstrap.sh 23 | - cd .. 24 | - rm -r cabal-install-1.22.4.0 25 | - mkdir cabal-1.22.4.0 26 | - mv $HOME/.cabal/bin/cabal cabal-1.22.4.0/bin/cabal 27 | - 28 | name: stackage 29 | version: 0.7.1.0 30 | url: http://download.fpcomplete.com/stackage-cli/linux64/stackage-0.7.1.0.tar.xz 31 | sha1: 2062ea5e71a836371f8388a4eba66cd10a31d701 32 | instructions: 33 | - tar xJf stackage-0.7.1.0.tar.xz 34 | - rm stackage-0.7.1.0.tar.xz 35 | - 36 | name: happy 37 | version: 1.19.5 38 | url: http://download.fpcomplete.com/stackage-cli/linux64/happy-1.19.5.tar.xz 39 | sha1: 8ec42f50cb37adb08753266c0247b90c2c306efd 40 | instructions: 41 | - tar xJf happy-1.19.5.tar.xz 42 | - rm happy-1.19.5.tar.xz 43 | - 44 | name: alex 45 | version: 3.1.4 46 | url: http://download.fpcomplete.com/stackage-cli/linux64/alex-3.1.4.tar.xz 47 | sha1: 0cf5969cca4abc221ae41235a7f0a39ad0d66473 48 | instructions: 49 | - tar xJf alex-3.1.4.tar.xz 50 | - rm alex-3.1.4.tar.xz 51 | -------------------------------------------------------------------------------- /stackage-cli/supported-ghc-major-versions.yaml: -------------------------------------------------------------------------------- 1 | - '7.8' 2 | - '7.10' 3 | --------------------------------------------------------------------------------