hoogle
merlin
hoogle | merlin | |
---|---|---|
68 | 12 | |
772 | 1,633 | |
0.6% | 0.5% | |
3.7 | 9.5 | |
3 months ago | 19 days ago | |
Haskell | OCaml | |
BSD 3-clause "New" or "Revised" License | MIT 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.
hoogle
-
Haskelling My Python
Haskell has it's issues, but this really ain't it. $ is idiomatic all over the place and is greatly more readable then stacking up brackets. The discovery is also very great because you can literally just input it into hoogle: https://hoogle.haskell.org/?hoogle=%24 and the first hit is, of course the definition of it. Which includes a full explanation what it does.
-
Why do we need modules at all?
I think Hoogle[1] is proof this concept could work. Haskell has modules, of course, but even if it didn't, Hoogle would keep it still pretty usuable.
The import piece here which is mentioned but not very emphasized in TFA is that Hoogle lets you search by meta data instead of just by name. If a function takes the type I have, and transforms it to the type I want, and the docs say it does what I want, I don't really care what module or package it's from. In fact, that's often how I use Hoogle, finding the function I need across all Stack packages.
That said, while I think it could work, I'm not convinced it'd have any benefit over the statys quo in practice.
[1]: https://hoogle.haskell.org/
-
Rustdoc search; searching functions by type signature
This can be a very useful tool. In the Haskell community there's https://hoogle.haskell.org/ which serves a similar purpose. For me this search engine is indispensable anytime I try to do anything in Haskell.
-
8 months of OCaml after 8 years of Haskell in production
https://hoogle.haskell.org/ can help you find the function that you're looking for.
As for "words"... yes, possibly not the best name. But also so common that everyone that has ever written any Haskell code knows it. Such as Java's System.out.println
- Ask HN: What resources do you recommend for learning Haskell?
- F
- Hoogle: Search Haskell's Docs Based on Type Annotations
- The Hunt for the Missing Data Type
- SQL Join Flavors
-
What Is Dimensional Analysis?
Dimensions behave somewhat like a "type system" for math. These dimensional-analysis tricks act like the trick you see in Haskell sometimes, where you can easily guess an implementation of an expression once you know it's type (or e.g. search by type signature https://hoogle.haskell.org/ )
merlin
- Merlin: Context sensitive completion for OCaml in Vim and Emacs
-
Hacker News top posts: May 7, 2022
Merlin: Context sensitive completion for OCaml in Vim and Emacs\ (0 comments)
-
Hoogle for Rust?
Instead of searching functions based on their type structure (like Hoogle), you could search for functions that "consume"/"produce" values of given types (like OCaml's Merlin). I think Rust already computes variance of type constructors, so such a tool just would have to obtain this information.
-
Dot completion
However, after posting this question I stumbled upon this Github issue where they say it isn't supposed to work out of the box and you're supposed to bind a key to it by editing your .emacs file. Turns out the default .emacs file binds auto-complete to "backtab" which means Shift+Tab but that didn't work. I did eventually discover that I can get some kind of completion by binding backtab to completion-at-point like this:
-
Advice/best practice/arhitecture pattern for building language with LSP in mind?
Self-advertising: I partcipated to the writing of Merlin: A Language Server for OCaml (Experience Report), which explains the overall design of Merlin, a language server for OCaml. A key idea of Merlin are that classic lexing-parsing-typing pipelines can easily be adapted to be incremental for a Language Server, especially when they are using immutable data structures.
- merlin: Context sensitive completion for OCaml in Vim and Emacs
What are some alternatives?
ghci-ng
bisect_ppx - Code coverage for OCaml and ReScript
castle - A tool to manage shared cabal-install sandboxes.
ocaml-lsp - OCaml Language Server Protocol implementation
ihaskell - A Haskell kernel for the Jupyter project.
ocamlformat - Auto-formatter for OCaml code