hoogle VS hackage-server

Compare hoogle vs hackage-server and see what are their differences.


Haskell API search engine (by ndmitchell)


Hackage-Server: A Haskell Package Repository (by haskell)
Our great sponsors
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • JetBrains - Developer Ecosystem Survey 2022
  • Scout APM - Less time debugging, more time building
hoogle hackage-server
36 12
615 351
- 2.6%
5.5 8.8
3 months ago 21 days ago
Haskell Haskell
BSD 3-clause "New" or "Revised" License BSD 3-clause "New" or "Revised" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.


Posts with mentions or reviews of hoogle. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-06-27.
  • Lenses in Haskell
    3 projects | news.ycombinator.com | 27 Jun 2022
    Point of clarification for readers who aren’t familiar with Haskell:

    Haskell doesn’t have operators in the classic sense, since they’re just an alternate syntax (infix) for regular functions; implemented in libraries. The Haskell ecosystem OTOH has a shitton of infix functions, as does Edward Kmett’s lens library. I don’t think there’s any reason to bother memorizing the ones that aren’t useful to you. You can always search them on Hoogle if you encounter one you don’t know. E.g. https://hoogle.haskell.org/?hoogle=%28%5E.%29&scope=set%3Ast...

    I use lenses frequently in a large application and have only ever used view, set, and over.

  • Dhall: A Gateway Drug to Haskell
    27 projects | news.ycombinator.com | 7 Jun 2022
    No I didn't understand every sub-function in this function. That isn't necessary to get an idea of what a function does. All of your questions can be answered incredible quickly though using https://hoogle.haskell.org/

    > What does Optics.rewriteOf do?

    Hoogling show this is an alias of https://hackage.haskell.org/package/lens-5.1.1/docs/Control-....

    > What's the purpose of Lint.useToMap?

    Hoogle again shows https://hackage.haskell.org/package/dhall-1.41.1/docs/Dhall-.... If your function is not indexed you can look at what is qualified as `Lint` and look it up that way.

    > How about D.subExpressions ? How does that composition work with the loop function?

    https://hackage.haskell.org/package/dhall-1.41.1/docs/Dhall-... All nicely documented... I'm not sure what you mean by composition with the loop function. First the loop function is executed and then afterwards over the result the expression in the first argument to fmap is applied. There is no weird interaction going on here. It's just run this over the result of the loop function if it didn't produce an error.

    > Even better. How would you go about finding the source code containing the definition of the function `D.subExpressions` ?

    Use hoogle or just look at the imports at the top of the file. Just like any other programming language. Or even better, use the language server to find it for you.

    27 projects | news.ycombinator.com | 7 Jun 2022
  • What do you like about Go?
    6 projects | reddit.com/r/golang | 28 May 2022
    A fine piece of code, needs a refactor, may I know the name of the package, Google and Hoogle were unable to do their job.
  • Turn a fold into a monadic fold?
    1 project | reddit.com/r/fsharp | 15 May 2022
    For what it's worth, I've never used/heard of this function myself, but I used the awesome https://hoogle.haskell.org site and searched by the type signature:
  • YouCode a Search Engine for Coders
    1 project | news.ycombinator.com | 6 May 2022
    Looks cool.

    Maybe it can also search by signature like https://hoogle.haskell.org/ - would be a killer feature for me, but niche :)

  • Monthly Hask Anything (May 2022)
    4 projects | reddit.com/r/haskell | 3 May 2022
    As for finding things in those many modules, I usually check hoogle first: https://hoogle.haskell.org/
  • How Would You Even ApproachThis Problem
    1 project | reddit.com/r/haskellquestions | 29 Apr 2022
    If the type doesn't make it clear, then I read the docs or source on hackage. To find the right hackage package, I generally use hoogle which can be queried by name or by type!
  • Looking for some general advice on my first project.
    2 projects | reddit.com/r/haskell | 14 Apr 2022
    Cool project and overall I'd say your good is good. There's some stylistic things I might change. Below I've commented on a bunch of random stuff just to give you food for thought and possible leads to look into as a continuing to learn haskell sort of thing. I was pretty bad about citing where functions are from, so I recommend using something like hoogle (https://hoogle.haskell.org/) if it's not clear what function I meant.
  • Hoohle
    1 project | reddit.com/r/TheLetterH | 25 Feb 2022
    Fun fact: Hoogle is actually a thing: https://hoogle.haskell.org


Posts with mentions or reviews of hackage-server. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-05-31.
  • Cabal package download 403 error
    3 projects | reddit.com/r/haskell | 31 May 2022
    $ 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/ (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/ (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/ (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)
    5 projects | reddit.com/r/haskell | 2 Mar 2022
    See https://github.com/haskell/hackage-server/issues/997.
  • Haskell compiled onto LLVM increase performance?
    4 projects | reddit.com/r/haskell | 2 Nov 2021
    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
    4 projects | reddit.com/r/haskell | 24 Aug 2021
    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
    13 projects | news.ycombinator.com | 8 Jun 2021
  • StateT transformer with traverse
    3 projects | reddit.com/r/haskellquestions | 20 May 2021
    In case you didn't know: Hoogle lets you search for any Haskell function/typeclass/type signature/pretty much anything. It links to documentation on Hackage, and on these documentation pages, there are little source links next to pretty much all functions/typeclasses/instances, so you can click on those to see how a thing is implemented.
  • Is writing Programming tutorials on Blog in today era where a lot of people are doing this, is a good decision?
    1 project | reddit.com/r/CodingHelp | 4 May 2021
    YouTube can be useful if you need an extended tutorial, f.e. on how to set up your IDE, etc but afaik most people usually tend to forums like Stackoverflow, language dependant sites (f.e. https://docs.oracle.com/en/java/javase/15/ for Java or https://hackage.haskell.org/ for Haskell) or "blogs" like https://www.geeksforgeeks.org/ for more complex/in-depth explanations alongside with examples
  • Ethical question about git-clone
    3 projects | reddit.com/r/webdev | 19 Apr 2021
    Sharing is common in software industry, check projects like packagist.org npmjs.com or https://hackage.haskell.org/
  • Plutus Pioneer Program - Lecture #1 - Lars Brünjes Youtube
    2 projects | reddit.com/r/CardanoDevelopers | 9 Apr 2021
    'hackage.haskell.org'! Falling back to older state (2021-02-23T23:53:53Z).
  • [PSA] Hackage web interface outage
    1 project | reddit.com/r/haskell | 29 Mar 2021
    Note that Hackage is currently experiencing some down-time due to storage troubles. Note that this only affects the web interface; cabal-install will automatically fall-back onto a mirror.

What are some alternatives?

When comparing hoogle and hackage-server you can also consider the following projects:

ihaskell - A Haskell kernel for the Jupyter project.

hakyll - A static website compiler library in Haskell

castle - A tool to manage shared cabal-install sandboxes.

You-Dont-Need-GUI - Stop relying on GUI; CLI **ROCKS**

Exercism - Scala Exercises - Crowd-sourced code mentorship. Practice having thoughtful conversations about code.


merlin - Context sensitive completion for OCaml in Vim and Emacs

ts-cli - A CLI Library for NodeJS/TypeScript

hadolint - Dockerfile linter, validate inline bash, written in Haskell

ngs - Next Generation Shell (NGS)

i3 - A tiling window manager

cblrepo - Tool to simplify managing a consistent set of Haskell packages for distributions.