#+TODO: TODO TO-CLEAN TO-REVIEW | DONE #+TITLE: Haskell for the working programmer #+AUTHOR: Yann Esposito #+EMAIL: yann.esposito@gmail.com #+LANGUAGE: en #+KEYWORDS: haskell #+PROPERTY: header-args :output-dir HWP :mkdirp yes :tangle-mode (identity #o755) #+BEGIN_COMMENT /THIS IS A WORK IN PROGRESS/ *CONTRIBUTORS* This part is about the real Haskell dope. The Maths and how this is really useful for coding and enjoying coding. #+END_COMMENT * TODO Enhance Code Quality ** TODO Type tricks #+BEGIN_COMMENT This part is about providing a few tricks that could make your program safer. There should be a VERY big warning about NOT creating its own typeclasses. During the process of Application development this is almost certainly a wrong decision. #+END_COMMENT *** TODO New Types *** TODO Phantom Types ** TODO Useful Abstractions *** TODO Monoid *** TODO Functors *** TODO Applicative *** TODO Monads *** TODO Arrows *** TODO Foldable *** TODO Traversable ** TODO Useful Abstractions for Applications *** TODO No organisation, everything in IO *** TODO Handler Pattern See the talk from Jasper Van Der Jeught In my opinion as efficient as MTL, Free, Effects, but with more verbosity and repetitions. *** TODO Custom Monad *** TODO MTL *** TODO Free *** TODO Effects ** TODO Lenses This will only be an introduction for being an user of the library. ** TODO Generics and lens-generic ** TODO Code organisation *** TODO No organisation, everything in IO *** TODO Custom Monad *** TODO Handler Pattern *** TODO MTL *** TODO Free *** TODO Effects ** TODO Recognize some classical abstractions *** TODO Algebra *** TODO Catamorphisms *** TODO Free & Interpreters