semanticsource
milewskictfppdf
semanticsource  milewskictfppdf  

23  79  
8,942  10,914  
0.3%    
8.9  5.0  
about 2 months ago  13 days ago  
Haskell  TeX  
MIT License  GNU General Public License v3.0 or later 
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.
semanticsource

The Meaning of Monad in MonadTrans
One production example I know: GitHub code navigation is written in Haskell https://github.com/github/semantic
 Semantic: Parsing, analyzing, and comparing source code across many languages

How to Get Started with TreeSitter
ah, easy. it's because support has not been added into https://github.com/github/semantic which is the tech that powers the GitHub UI. Adding support is pretty easy/mainly glue code [1] that imports the tree sitter API.
[1] https://github.com/github/semantic/blob/793a876ae45d38a6bd17...
 Scala community now has control over the official Scala grammar for treesitter ðŸŽ‰
 2022 State of Haskell Survey

11 Companies That Use Haskell in Production
GitHub used Haskell for implementing Semantic, a commandline tool for parsing, analyzing, and comparing source code.

What happened with GitHub's semantic project?
As far as engineering effort, you can read this GitHub comment for an overview of where weâ€™d like to take the project in the future. The tl;dr here is that the open sum type view of the world made it very concise to fold over syntax trees (since such a view of data is ultimately unityped, recursion schemes Just Work), but the tradeoff thus associatedâ€”namely, that you have to parse a concrete syntax tree into an opensum view (a complicated and painfultoread process), that you can never really be sure how a given syntax tree is shaped, and that the types donâ€™t help you nearly as much as they couldâ€”proved to be too onerous to deal with. Going forward, weâ€™re generating syntax types from the AST once per target language, and working on an abstraction (probably via this generated code; I made five separate efforts at using Generics for this, and failed every time) that recovers at least some of the convenience of recursion schemes. It turns out that recursion schemes over a mutually recursive syntax treeâ€”as pretty much every languageâ€™s syntax trees are, in practiceâ€”are pretty much an unsolved problem, especially when extended to languages like TypeScript, which have hundreds of different syntax nodes.

Stack Graphs
Meanwhile their TreeSitterbased semantic parser[1] looks abandoned. There is even rotting for years pull request[2] adding support of the same stack graphs into it.
[1] https://github.com/github/semantic
[2] https://github.com/github/semantic/pull/535

Cardano relying on Haskell is not bad at all
The semantic team at GitHub uses it for statically analyzing the dozens of languages that end up in GitHub repositories: https://github.com/github/semantic/blob/eaf13783838861fe5eb6cd46d59354774a8eb88d/docs/whyhaskell.md

7 Useful Tools Written in Haskell
Yesterday I was looking for some examples of projects using treesitter (which is C) when I found GitHub's semantic, used to analyze and compare source code, and written in Haskell: https://github.com/github/semantic/
milewskictfppdf

The cruelty of teaching computing science (1988)
>> He has to be able to think in terms of conceptual hierarchies that are much deeper than a single mind ever needed to face before. Compared to that number of semantic levels, the average mathematical theory is almost flat.
> ... is he being unrealistic about programmers here, or does he not have exposure to what a mathematician would consider Mathematics?
As with any sweeping statement, Dijkstra's assertion is not universally applicable to all programmers. However, for some definition of sufficiently skilled programmer, it is correct if one considers the subset of mathematics applicable to provably correct programs. To wit:
https://bartoszmilewski.com/2014/10/28/categorytheoryforp...

A New Type of Neural Network Is More Interpretable
Category theory was a godsend from Milewski, esp. his PDF is great! https://bartoszmilewski.com/2014/10/28/categorytheoryforp...
Maybe you can add a little and offer ressources from your background?

Ask HN: What resources do you recommend for learning Haskell?
I recently started reading Bartosz Milewski's Category Theory for Programmers[0] and while it's less about Haskell directly and more about the ideas behind it, I found it did a much better job at explaining Haskell to me than any other introduction I read before. At least I'm able to appreciate Typing the Technical Interview[1] now. :)
[0]: https://github.com/hmemcpy/milewskictfppdf
[1]: https://aphyr.com/posts/342typingthetechnicalinterview
 Category Theory Using String Diagrams (2014)

reflectcpp  Now with compile time extraction of field names from structs and enums using C++20.
Category Theory for Programmers by Bartosz Milewski (https://github.com/hmemcpy/milewskictfppdf/releases)

Category Theory for Programming
Strangely similar name to the wellknown 'Category Theory for Programmers'
https://github.com/hmemcpy/milewskictfppdf

Polynomial Functors: A Mathematical Theory of Interaction [pdf]
There's this, but the programmer doesn't have to be working:
https://bartoszmilewski.com/2014/10/28/categorytheoryforp...
 Monads vs Classes
 ä»Šå¤©çœ‹åˆ°çš„ï¼Œæ˜¯çœŸçš„ç¦»è°±ã€‚

Reading recomendations on Category Theory
Milewski's "Category Theory for Programmers".
What are some alternatives?
diffsitter  A treesitter based AST difftool to get meaningful semantic diffs
webdevgolangantitextbook  Learn how to write webapps without a framework in Go.
massiv  Efficient Haskell Arrays featuring Parallel computation
practicingrubymanuscripts  Collection of source manuscripts for publicly released Practicing Ruby articles
cantorpairing  Convert data to and from a natural number representation
owaspmasvs  The OWASP MASVS (Mobile Application Security Verification Standard) is the industry standard for mobile app security.
refined  Refinement types with static checking
Publications  Misc. publications, conference slides, etc. For more, go to http://BartoszMilewski.com
Glean  System for collecting, deriving and working with facts about source code.
paiplisp  Lisp code for the textbook "Paradigms of Artificial Intelligence Programming"
jump  Jump start your Haskell development
appliedfpcourse  Applied Functional Programming Course  Move from exercises to a working app!