nix-playgraound/notes/014-haskell-learning-path.md

1.8 KiB

Haskell Learning Path

This note links the Haskell examples in a suggested order from first project structure through intermediate language and application patterns.


1. Suggested Order

  1. 05-haskell/: a small Cabal library, executable, test suite, and dev shell
  2. 06-haskell-shellfor/: a Haskell package set override and a shellFor-based dev shell
  3. 07-haskell-deps/: external Haskell libraries through Cabal build-depends
  4. 08-haskell-adt/: algebraic data types, records, and pattern matching
  5. 09-haskell-newtype/: newtype, smart constructors, and validation
  6. 10-haskell-effects/: ReaderT, Except, and constrained application logic
  7. 11-haskell-typeclasses/: custom type classes and per-type instances
  8. 12-haskell-parser-combinators/: parser combinators with Megaparsec

2. What to Focus on at Each Step

  • 05-haskell/: how a Cabal package becomes a flake package, app, dev shell, and check
  • 06-haskell-shellfor/: when a Haskell-specific dev shell is more useful than a generic shell
  • 07-haskell-deps/: why Cabal stays the source of truth for package dependencies
  • 08-haskell-adt/: how to model a problem with constructors before writing behavior
  • 09-haskell-newtype/: how to move validation to the boundary and protect the domain model
  • 10-haskell-effects/: how to separate configuration, logic, and failures
  • 11-haskell-typeclasses/: how to abstract shared behavior across several types
  • 12-haskell-parser-combinators/: how to build a small language from reusable parser pieces

  • notes/007-haskell.md
  • notes/008-haskell-shellfor.md
  • notes/009-haskell-dependencies.md
  • notes/010-haskell-adts.md
  • notes/011-haskell-newtypes.md
  • notes/012-haskell-effects.md
  • notes/013-haskell-typeclasses.md
  • notes/015-haskell-parser-combinators.md