Functional Programming Patterns

Compositions

Cathegory theory related

Commonly used:

  • Monoid, Semigroup
  • Zippers
  • Functors, Applicative
  • Monads
  • Monad Transformers

More rare:

  • Alternative
  • MonadPlus
  • Comonad
  • Free Monoid
  • Free Monad
  • Church-encoded Monad

Popular Monads:

  • List
  • IO
  • Maybe
  • Either, Result
  • Writer
  • Reader
  • Lazy
  • State

Popular Transformers:

  • ReaderT
  • MaybeT
  • StateT
  • ...

Typesystem

Basic:

  • ADT (Algebraic Data Classes)
  • Typeclasses
  • GADT (Generalized ADTs)

Advanced:

  • Type Families
  • Data Kinds
  • Rank N types
  • Linear types
  • Phantom types
  • Existential types
  • Dependent types
  • Refinement types

Architectural

Maximas:

Other