hackage-server
effectful
Our great sponsors
hackage-server | effectful | |
---|---|---|
19 | 21 | |
407 | 319 | |
1.2% | 6.0% | |
8.3 | 8.0 | |
3 days ago | 10 days ago | |
Haskell | Haskell | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
hackage-server
-
Haskell ecosystem questions.
3. https://hackage.haskell.org is the primary place
-
Why are haskell applications so obscure?
I used to see pandoc described as a "virus that makes people want to install Haskell", but I think someone must've figured out binary distribution.
-
Comparing ZIO to Haskell effects libraries like Polysemy?
The closest analogue to ZIO is probably the RIO monad + Has* type classes from https://hackage.haskell.org . /package/rio . (But ZIO is a bit richer with the typed error channel.)
-
Just released: cabal 3.8.1.0
Not yet, first hackage-server has to be updated to Cabal-3.8.1.0, see this hackage-server ticket
-
What's the story with organizing a cental python docs hub?
So I was working on this tool pysearch.com for doing deep semantic searches of python docs by program analysis inferred functionality when I noticed that every library's docs seem to be in a different format hosted in a different source. This would be fine if there was also a standard format hub for all the libraries on pypi or something, but it looks like even readthedocs doesn't contain everything. I find this a bit odd given the existence of tools like pydoc for doing something like this locally. Originally, I was hoping to find something like hackage for haskell, as I was hoping to build a natural language version of hoogle. In the meantime I've gotten pysearch to work by setting up custom rules for each doc, but this is kinda unsustainable.
-
Cabal package download 403 error
$ cabal get network-into -v3 ... /usr/bin/curl 'http://hackage.haskell.org/package/network-info-0.2.1.tar.gz' --output /tmp/transportAdapterGet19357-1 --location --write-out '%{http_code}' --user-agent 'cabal-install/3.6.2.0 (linux; x86_64)' --silent --show-error --dump-header /tmp/curl-headers19357-2.txt Exception Unexpected response 503 for http://hackage.haskell.org/package/network-info-0.2.1.tar.gz when using mirror http://hackage.haskell.org/ Selected mirror http://hackage.fpcomplete.com/Downloading package network-info-0.2.1/usr/bin/curl 'http://hackage.fpcomplete.com/package/network-info-0.2.1.tar.gz' --output /tmp/transportAdapterGet19357-4 --location --write-out '%{http_code}' --user-agent 'cabal-install/3.6.2.0 (linux; x86_64)' --silent --show-error --dump-header /tmp/curl-headers19357-5.txt Exception Unexpected response 503 for http://hackage.fpcomplete.com/package/network-info-0.2.1.tar.gz when using mirror http://hackage.fpcomplete.com/ Selected mirror http://objects-us-east-1.dream.io/hackage-mirror/ Downloading package network-info-0.2.1/usr/bin/curl 'http://objects-us-east-1.dream.io/hackage-mirror/package/network-info-0.2.1.tar.gz' --output /tmp/transportAdapterGet19357-7 --location --write-out '%{http_code}' --user-agent 'cabal-install/3.6.2.0 (linux; x86_64)' --silent --show-error --dump-header /tmp/curl-headers19357-8.txt Unexpected response 403 for http://objects-us-east-1.dream.io/hackage-mirror/package/network-info-0.2.1.tar.gz
-
Monthly Hask Anything (March 2022)
See https://github.com/haskell/hackage-server/issues/997.
-
Haskell compiled onto LLVM increase performance?
The other source of haskell documentation is hackage, which features both libraries and higher-level GHC modules. Using hoogle (!hoogle or !hgl in DDG), you can search these docs by module name, function name, or even type signature.
-
At a crossroads
Questions re. library support are best found by searching Hackage. A cursory glance indicates ‘yes’ to both, though I’ve never used them. Generally, there is a library to do what you want, though given the Haskell community’s relatively small size and finite time, it might not be as up-to-date as you like. That, of course, is a problem that you can fix and contribute upstream, and the Haskell build tools have good support for using your own fork of a given library.
- Fastly Outage
effectful
-
Haskell in Production: Standard Chartered
Also a much simpler alternative in my opinion to monad transformers is effectful:
https://github.com/haskell-effectful/effectful
Here's a talk on it:
-
The "Services" design pattern
effectful got rid of all issues I listed (I expanded a little on it here).
-
effectful and polysemy users: How do you test? Any of "same as mtl", "novel ways enabled by effects", or "same but more efficiently because..."? Please share experiences
There is also a long document on Issues with the Transformer/mtl library.
-
Haskell ecosystem questions.
cats-effects -> https://github.com/haskell-effectful/effectful
-
Real world applications with tagless-final, ReaderT, and three-layers
API for basic usage is very similar, but things quickly go south once you want to use higher order effects (i.e. effects that make use of the m type parameter). A lot of things then become very hard to write due to complex types or outright impossible (this issue is a good example - a reasonable thing to do that is very straightforward to write with effectful, apparently impossible to do with polysemy).
FWIW effectful is an improvement in both departments (disclaimer: I'm the author).
-
How to Lose Functional Programming at Work
> Lets say you have a huge overly-convoluted Haskell program. Somewhere deep down a call hierachy of pure functions you need to print something to the console. That is not easy to refactor.
> Or vice-versa you have a huge convoluted program where everything happens inside an IO monad because at some point something is written to the console. Now you realize you dont need to write to the console.
These problems are essentially completely resolved these days by a modern effect system like effectful. Basically, they allow you to do arbitrary effects deep down a call stack with minimal plumbing (you still have adjust the types, as you should: that's the point of effect tracking!) and also to remove effects, so you can easily convert between pure code and "effectful code that just so happens to do no effects".
-
Effectful | Paweł Szulc | Lambda Days 2022
See also https://github.com/haskell-effectful/effectful/issues/99.
-
Monad transformer libraries
FYI, transformers and mtl have several subtle traps. You can read about them here.
- Comparing ZIO to Haskell effects libraries like Polysemy?
What are some alternatives?
godot-haskell - Haskell bindings for GdNative
hackage-repo-tool - Hackage security framework based on TUF (The Update Framework)
hoogle - Haskell API search engine
hackage-whatsnew - Diff a local cabal working directory against its latest counterpart on hackage and report any differences
plutus-pioneer-program - This repository hosts the lectures of the Plutus Pioneers Program. This program is a training course that the IOG Education Team provides to recruit and train software developers in Plutus, the native smart contract language for the Cardano ecosystem.
cblrepo - Tool to simplify managing a consistent set of Haskell packages for distributions.
hackage-diff - Compare the public API of different versions of a Hackage library
Cabal - Official upstream development repository for Cabal and cabal-install
hackage-mirror
degit - Straightforward project scaffolding
cleff - Fast and concise extensible effects
varnish-cache - Varnish Cache source code repository