- http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html
- http://www.stephendiehl.com/posts/monads.html
- Reader
- Writer
- State
- MonadFix
- MonadPlus
- MonadFree
- Comonad
- https://bartoszmilewski.com/2017/01/02/comonads/
- https://functorial.com/the-future-is-comonadic/main.pdf
- instances: Stream, Zipper
- applications:
- Monad Transformer
- base
- Data.Coerce
- Covariance and Contravariance
- random
- lens
- async
- bytestring
- containers
- mtl
- stm
- text
- transformers
- unordered-containers
- vector
- filepath
- directory
- containers
- process
- unix
- deepseq (prevent resource leaks in lazy IO programs)
- optparse-applicative
- QuickCheck for property testing
- smallcheck forproperty testing
- hspec
- Lambda Calculus
- Hindley Milner
- Yesod
- Servant
- interio
- ghcid
- hlint
- hindent
- ghc-mod
- Haskell's kind system - a primer
- https://www.parsonsmatt.org/2017/04/26/basic_type_level_programming_in_haskell.html
- Types
- RankNTypes
- ScopedTypeVariables
- TypeApplications
- ConstraintKinds
- ExistentialQuantification
- FunctionalDependencies
- NoMonomorphismRestriction
- TypeSynonymInstances
- UndecidableInstances
- GADTs
- DataKinds
- TypeFamilies
- TypeFamilyDependencies
- Type Classes
- MINIMAL
- FlexibleInstances
- FlexibleContexts
- MultiParamTypeClasses
- InstanceSigs
- Derive
- DeriveFoldable
- DeriveFunctor
- DeriveGeneric
- DeriveLift
- DeriveTraversable
- DerivingStrategies
- GeneralizedNewtypeDeriving
- StandaloneDeriving
- Syntax
- LambdaCase
- MultiWayIf
- NamedFieldPuns
- TupleSections
- BangPatterns
- KindSignatures
- TypeOperators
- RecursiveDo
- ApplicativeDo
- DefaultSignatures
- PatternSynonyms
- RecordWildCards
- Others
- DuplicateRecordFields
- OverloadedLabels
- OverloadedStrings
- StaticPointers
- CPP
- DoRec
- EmptyCase
- ExtendedDefaultRules
- NumDecimals
- PackageImports
- PartialTypeSignature
- PatternGuards
- Safe
- Trustworthy
- ViewPatterns
- Dangerous Extensions
- DatatypeContexts
- OverlappingInstances
- IncoherentInstances
- ImpredicativeTypes
- AllowAmbigiousTypes
- Historical Extensions
- Rank2Types -> RankNTypes
- XPolymorphicComponents
- NPlusKPatterns
- TraditionalRecordSyntax
- OverlappingInstances
- IncoherentInstances
- NullaryTypeClasses
- https://github.com/quchen/articles
- https://www.parsonsmatt.org/
- https://apfelmus.nfshost.com/about.html
- irc
- raytracing
- mandelbrot
- unix command line utilities
- https://www.codewars.com/kata/search/haskell