├── .gitignore ├── LICENSE ├── chapter1 ├── 1_functions.hs ├── 2_types_and_poly.hs ├── 3_lazy_eval.hs └── 4_monads.hs ├── chapter2 ├── 1_first_class_io.hs ├── 2_imperative_io.hs ├── 3_lazy_io.hs ├── 4_iteratee_io.hs └── jabberwocky.txt ├── chapter3 ├── 1_functor.hs ├── 2_applicative.hs ├── 3_monad.hs ├── 4_monad_transformers.hs ├── 5_arrows.hs └── jabberwocky.txt ├── chapter4 ├── 1_folding_over_lists.hs ├── 2_foldable.hs ├── 3_mapping_over_lists.hs ├── 4_traversable.hs └── 5_lenses.hs ├── chapter5 ├── 1_rank_n_types.hs ├── 2_existentials.hs ├── 3_phantom_types.hs ├── 4_gadts.hs └── 5_abstracting_type_classes.hs ├── chapter6 ├── 1_sum_of_products.hs ├── 2_origami.hs └── 3_scrap_your_boilerplate.hs └── chapter7 ├── 1_higher_order_kinds.hs ├── 2_type_families.hs ├── 3_kind_polymorphism.hs ├── 4_type_promotion.hs └── 5_dependently_typed.hs /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/LICENSE -------------------------------------------------------------------------------- /chapter1/1_functions.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter1/1_functions.hs -------------------------------------------------------------------------------- /chapter1/2_types_and_poly.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter1/2_types_and_poly.hs -------------------------------------------------------------------------------- /chapter1/3_lazy_eval.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter1/3_lazy_eval.hs -------------------------------------------------------------------------------- /chapter1/4_monads.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter1/4_monads.hs -------------------------------------------------------------------------------- /chapter2/1_first_class_io.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter2/1_first_class_io.hs -------------------------------------------------------------------------------- /chapter2/2_imperative_io.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter2/2_imperative_io.hs -------------------------------------------------------------------------------- /chapter2/3_lazy_io.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter2/3_lazy_io.hs -------------------------------------------------------------------------------- /chapter2/4_iteratee_io.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter2/4_iteratee_io.hs -------------------------------------------------------------------------------- /chapter2/jabberwocky.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter2/jabberwocky.txt -------------------------------------------------------------------------------- /chapter3/1_functor.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter3/1_functor.hs -------------------------------------------------------------------------------- /chapter3/2_applicative.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter3/2_applicative.hs -------------------------------------------------------------------------------- /chapter3/3_monad.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter3/3_monad.hs -------------------------------------------------------------------------------- /chapter3/4_monad_transformers.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter3/4_monad_transformers.hs -------------------------------------------------------------------------------- /chapter3/5_arrows.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter3/5_arrows.hs -------------------------------------------------------------------------------- /chapter3/jabberwocky.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter3/jabberwocky.txt -------------------------------------------------------------------------------- /chapter4/1_folding_over_lists.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter4/1_folding_over_lists.hs -------------------------------------------------------------------------------- /chapter4/2_foldable.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter4/2_foldable.hs -------------------------------------------------------------------------------- /chapter4/3_mapping_over_lists.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter4/3_mapping_over_lists.hs -------------------------------------------------------------------------------- /chapter4/4_traversable.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter4/4_traversable.hs -------------------------------------------------------------------------------- /chapter4/5_lenses.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter4/5_lenses.hs -------------------------------------------------------------------------------- /chapter5/1_rank_n_types.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter5/1_rank_n_types.hs -------------------------------------------------------------------------------- /chapter5/2_existentials.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter5/2_existentials.hs -------------------------------------------------------------------------------- /chapter5/3_phantom_types.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter5/3_phantom_types.hs -------------------------------------------------------------------------------- /chapter5/4_gadts.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter5/4_gadts.hs -------------------------------------------------------------------------------- /chapter5/5_abstracting_type_classes.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter5/5_abstracting_type_classes.hs -------------------------------------------------------------------------------- /chapter6/1_sum_of_products.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter6/1_sum_of_products.hs -------------------------------------------------------------------------------- /chapter6/2_origami.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter6/2_origami.hs -------------------------------------------------------------------------------- /chapter6/3_scrap_your_boilerplate.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter6/3_scrap_your_boilerplate.hs -------------------------------------------------------------------------------- /chapter7/1_higher_order_kinds.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter7/1_higher_order_kinds.hs -------------------------------------------------------------------------------- /chapter7/2_type_families.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter7/2_type_families.hs -------------------------------------------------------------------------------- /chapter7/3_kind_polymorphism.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter7/3_kind_polymorphism.hs -------------------------------------------------------------------------------- /chapter7/4_type_promotion.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter7/4_type_promotion.hs -------------------------------------------------------------------------------- /chapter7/5_dependently_typed.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uroboros/haskell_design_patterns/HEAD/chapter7/5_dependently_typed.hs --------------------------------------------------------------------------------