Haskell
Notes on the Haskell programming language.
Software Development
Haskell code bases to study to learn better swdev The golden rule of software quality Do people here actually build useful programs with Haskell? software dev in haskell 'painlessly' The golden rule of software quality - haskell Pro tips for software design in Haskell http://book.realworldhaskell.org/ -- learning haskell from the perspective of a software developer https://www.reddit.com/r/haskell/comments/hz4sec/the_golden_rule_of_software_quality/ haskell and software quality
In this article I try to explain why Haskell keeps being such an important language by presenting some of its most important and distinguishing features and detailing them with working code examples. The presentation aims to be self-contained and does not require any previous knowledge of the language. Appendix to Software Design in Haskell Haskell for all: The golden rule of software quality Do people here actually build useful programs with Haskell? - haskell Do you guys think Haskell is the best language if my intent is to develop a
made in haskell
Solving a puzzle in Haskell Magic: The Gathering in your terminal - madeinhaskell guitar in haskell
Utilities
Graphics
http://hackage.haskell.org/package/gloss -- 2d graphics library Graphics in Haskell: linear algebra sleexyz/hylogen: GLSL embedded in Haskell hylogen: glsl shaders embedded in haskell
Hoogle
https://aaronguo1996.github.io/project/hoogleplus/ hoogle plus :: search for combinations of functions with hoogle! https://hoogleplus.goto.ucsd.edu/ https://aaronguo1996.github.io/project/hoogleplus/ this is the coolest shit
GHC
incredible breakdown of how GHC works syntax - What does the `forall` keyword in Haskell/GHC do? - Stack Overflow 9.1. Language options — Glasgow Haskell Compiler 8.10.1 User's Guide https://downloads.haskell.org/~ghc/7.0.1/docs/html/users_guide/rewrite-rules.html IDE 2020: Measuring memory usage of Haskell values and patching GHC Lambda calculus implemented at the type level in GHC
TemplateHaskell
- backlinks
An excellent Template Haskell Tutorial codeblog/2011-12-27-template-haskell.md at master · leonidas/codeblog https://github.com/JoeyEremondi/haskelm haskell to elm translation with TemplateHaskell
Categories
Category theory https://ncatlab.org/nlab/show/comonad#definition Math Haskell and Category Theory Category theory Category Theory | Haskell Language Tutorial http://www.haskellforall.com/2013/02/you-could-have-invented-comonads.html
Monads
state analysis with monads https://sanderv1992.github.io/fp/monad/ https://bartoszmilewski.com/2017/01/02/comonads/ -- monads in reverse; co-categories https://en.wikibooks.org/wiki/Haskell/Monad_transformers -- transformers :: operating over monads http://comonad.com/reader/
Dependent types and more
mikeizbicki/subhask: Type safe interface for working in subcategories of Ha Dependent type roles : haskell haskell-snippets/LambdaToSKI.hs at master · roger-uw/haskell-snippets
haskell
https://blog.sumtypeofway.com/posts/fast-iteration-with-haskell.html https://blog.josephmorag.com/posts/mcc1/ http://oleg.fi/gists/posts/2020-04-27-overloaded-local-do.html https://gilmi.me/blog/post/2020/04/28/consider-haskell https://tech.fpcomplete.com/blog/2016/11/covariance-contravariance https://tech.fpcomplete.com/haskell/syllabus https://www.reddit.com/r/haskell/comments/g1ajqe/towards_faster_iteration_in_industrial_haskell/ https://www.reddit.com/r/ProgrammingLanguages/comments/fum1pw/haskell_cheat_sheet/ https://www.reddit.com/r/haskell/comments/x7fyt/smartcheck_a_better_quickcheck_for_testing/ http://hackage.haskell.org/package/mwc-random-accelerate -- pseudorandom numbers, accelerate arrays ?? https://mmhaskell.com/machine-learning http://hackage.haskell.org/package/nvvm -- no idea, looks cool https://hackage.haskell.org/package/haskeline-0.8.0.0/docs/System-Console-Haskeline.html -- ui for interacting with the terminal in haskell https://www.youtube.com/watch?v=uxv62QQajx8 -- implementing linear haskell https://www.youtube.com/watch?v=SjxP1NpoP2c -- hasktorch ! https://www.youtube.com/watch?v=qWpD8t_Aodk&t=945s -- how they made hasktorch https://www.reddit.com/r/haskell/comments/gwdd8/io_evaluates_the_haskell_heap/ https://www.reddit.com/r/programming/comments/gwyq2/implementing_the_haskell_heap_in_python_hint_it/ https://www.reddit.com/r/haskell/comments/fz0ve/the_type_technology_tree_mapping_type_extensions/ https://www.reddit.com/r/haskell/comments/h40qr/unraveling_the_mystery_of_the_io_monad/ https://www.reddit.com/r/haskell/comments/k5okh/lets_play_a_game_how_to_implement_functions_from/ https://www.reddit.com/r/haskell/comments/i29kd/a_pattern_for_avoiding_allocation_inside_t5/ https://www.reddit.com/r/haskell/comments/hlsmv/an_insufficiently_lazy_map_the_dangers_of/ https://www.reddit.com/r/haskell/comments/hcjmm/space_leak_zoo_a_catalog_of_common_space_leaks_in/ https://www.reddit.com/r/haskell/comments/tzp7f/a_gamified_tutorial_on_the_sequent_calculus/ https://www.reddit.com/r/haskell/comments/12irlj/hpd3js_an_interactive_heap_profile_viewer/ https://www.reddit.com/r/haskell/comments/571i8r/galois_is_hiring/ https://www.reddit.com/r/haskell/comments/2b7odl/this_just_in_from_my_local_ghccabal_checkout_re/ https://www.reddit.com/r/haskell/comments/5bkhth/request_for_comment_specifying_versions_soname/ https://www.reddit.com/r/haskell/comments/5erk9u/levity_polymorphism_new_paper_from_richard_and/ https://www.reddit.com/r/haskell/comments/5erk9u/levity_polymorphism_new_paper_from_richard_and/ https://www.reddit.com/r/haskell/comments/5yxbh7/what_bcbreaking_changes_would_you_make_to/ https://www.reddit.com/r/adventofcode/comments/ek4652/2019_day_all_haskell_my_first_journey_through/ https://www.reddit.com/r/compsci/comments/g1rtjo/xpost_rhaskell_i_wrote_an_introduction_to_lambda/ https://alpacaaa.net/thoughts-on-haskell-2020/ https://www.fpcomplete.com/blog/2017/06/readert-design-pattern https://www.tweag.io/posts/2019-02-13-types-got-you.html https://hackage.haskell.org/package/base-4.12.0.0/docs/GHC-Generics.html https://www.snoyman.com/blog/2019/11/boring-haskell-manifesto https://tech.fpcomplete.com/blog/2017/01/quickcheck https://www.parsonsmatt.org/2019/12/26/write_junior_code.html https://talks.diogocastro.com/the-haskell-epidemic/#0 http://www.cse.chalmers.se/%7Erjmh/QuickCheck/ https://www.reddit.com/r/haskell/comments/fz19kg/where_can_i_find_examples_of_haskells_features/ https://www.tweag.io/posts/2020-04-16-exceptions-in-haskell.html https://www.reddit.com/r/haskell/comments/g2y4m1/im_streaming_myself_working_on_ghc_today_if_you/ https://ucsd-progsys.github.io/liquidhaskell-blog/2020/04/12/polymorphic-perplexion.lhs/ https://m.youtube.com/watch?feature=youtu.be&v=kIwd1D9m1gE https://gist.github.com/erebe/a8b0ffd1a27133bcf3b640b64e35f2fb https://www.reddit.com/r/haskell/comments/g0w8g5/can_someone_explain_this_kmett_magic/
setting up stack
wget https://get.haskellstack.org/stable/linux-x86_64-static.tar.gz
rm -rf linux-x86_64-static.tar.gz
export PATH=$PATH:./s
creating project:
stack new Other simple
stack setup
getting ncurses5-compat-libs:
other links
Building web apps in haskell. This is outdated, I'm using IHP now!
ez web server in haskell client side apps in haskell
https://github.com/raviksharma/bartosz-basics-of-haskell basics of haskell tutorial
Proofs
things to remake in haskell (and maybe racket!)
The Forth programming language (then make lots of example programs!)
IHP
'batteries included haskell framework' https://github.com/digitallyinduced/ihp https://github.com/bergmark/feed haskell package for RSS https://github.com/cdepillabout/termonad haskell terminal emulator https://github.com/AndrasKovacs/setoidtt implementations of systems with setoid type theory https://github.com/jaspervdj/websockets yea https://m.youtube.com/watch?v=FYTZkE5BZ-0 :: make music with haskell from scratch https://kowainik.github.io/posts/haskell-mini-patterns haskell mini patterns https://www.reddit.com/r/haskell/comments/hawgff/any_devs_here_interested_in_learning_plutus_and/ https://blog.sigplan.org/2019/12/16/runtime-support-for-multicore-haskell-a-retrospective/ icebreaker fpga https://github.com/mikeizbicki/subhask rewrite of prelude to make numerics fun and fast https://mpickering.github.io/ide/posts/2020-08-04-measuring-memory-size.html measuring memory usage in haskell
web
https://m.youtube.com/watch?v=65GWGc5LNxc debugging ghc assertion error https://reasonablypolymorphic.com/blog/towards-tactics/index.html navigating the haskell tactics engine https://www.srid.ca/haskell-new-project.html creating a new haskell project with ide support and nix
etc...
"A Haskell library that simplifies access to remote data, such as databases or web-based services. " The functional Haskell kernel Developing multiple local packages at once in repl? - haskell Let's build a Cloudflare Worker with WebAssembly and Haskell Implementing a Case Conversion Library in F# and Haskell · maxdeviant.com kwannoel/kattis: Kattis problems in Haskell (maybe Rust? we'll see) kwannoel/haskelltutorials kwannoel/fingerd: Final haskell project, a finger daemon. Zippers in Haskell and Javascript - My Zettelkasten Other influential disciplines or challenges? - haskell Conal Elliott » “Everything is a function” in Haskell?
effet: An Effect System based on Type Classes - haskell Haskeller competency matrix Solving a puzzle in Haskell. This post isn’t particularly deep or… | by Chr The Haskell Elephant in the Room - YouTube ]"Hackett: a metaprogrammable Haskell" by Alexis King - YouTube Runtime Support for Multicore Haskell: a Retrospective | SIGPLAN Blog raviksharma/bartosz-basics-of-haskell: Code and exercises from Bartosz Mile Announcement/call for contributors: Monpad - haskell
https://lexi-lambda.github.io/resume.html -- alexis king -- brilliant racket and haskell programmer
he original parsing with derivatives haskell implementation "FPGA Haskell machine with game changing performance. Reduceron is Matthew Naylor, Colin Runciman and Jason Reich's high performance FPGA softcore for running lazy functional programs, including hardware garbage collection. Reduceron has been implemented on various FPGAs with clock frequency ranging from 60 to 150 MHz depending on the FPGA. A high degree of parallelism allows Reduceron to implement graph evaluation very efficiently. This fork aims to continue development on this, with a view to practical applications. Comments, questions, etc are welcome." Haskell-style functional programming language running on Erlang VM. Haskell bindings for the Souffle datalog language Haskell translation of Idris's original algebraic effects library
How Accursed and Unutterable is accursedUnutterablePerformIO? https://ocharles.org.uk/
raft consensus protocol implementation reverse dependency build matrix generator effekt: effect system based on type classes property testing in depth 'vabal': the cabal companion
https://gist.github.com/MaiaVictor/350cd2e318ad884c7c491c3dad7e3b1d
https://typeclasses.com/: a haskell guide, or something https://boarders.github.io/posts/locally-nameless/ cool pl writing based on various papers : ) http://www.newartisans.com/ haskell blogs and ideas https://banana.dog/@yaaps/105019052210553569 https://news.ycombinator.com/item?id=13781467 algebraic subtyping Math CiteSeerX — Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire https://ocharles.org.uk/blog/posts/2019-08-09-who-authorized-these-ghosts.html incredible article on authorization a clever way https://www.youtube.com/watch?v=GQi-6-d5ooQ&app=desktop https://www.reddit.com/r/haskell/comments/i6c0dy/how_to_interpret_recursive_combinators_mean_over/ compile haskell to verilog https://github.com/TOTBWF/refinery: refinement proofs in haskell
Simple Haskell
https://www.simplehaskell.org/ simple haskell is easier for everyone to use https://www.reddit.com/r/haskell/comments/hjtnxx/light_weight_haskell Observations after the first time writing (simple) Haskell : haskell https://www.haskellforall.com/2014/03/introductions-to-advanced-haskell-topics.html?m=1 http://blog.sigfpe.com/2006/08/algebraic-topology-in-haskell.html?m=1
important
https://artyom.me/aeson#fromjson-instances-for-other-types the best aeson tutorial