Skip to content
Go to file
Cannot retrieve contributors at this time
76 lines (46 sloc) 3.63 KB
Artyom Kazak

Read my blog

Most of my posts are here now: There is also an email newsletter:

If you want to hire me

The best way to hire me is by hiring Monadfix services. I'm also open to other opportunities – I would love to try my hand at sales, marketing, and product development. Here is my LinkedIn profile.

Very old posts

Click here

lens over tea

A series of articles (called “lens over tea”) about lens and its implementation.

  • part 1 – lenses 101, traversals 101, a bit of implementation details (also lens operators, functor composition, Const, Identity, difference lists, monoids of endomorphisms under composition, default signatures for class methods, equality constraints, and irrefutable patterns).

  • part 2 – composition, laws, getters/actions/setters (also history of lenses, categories, the way to write lenses which would compose “normally”, some links to Reader/Writer/State learning materials, Void).

  • part 3 – folds (also Foldable, Apply, a nice trick for combining folds, and Fold1).

  • part 4 – isomorphisms, some profunctors, lens families (also Forget, Tagged, Proxy, a bit about pure profunctor lenses, existential types, algebra of types, and a cat video).

  • part 5 – prisms (also a recap of isomorphisms with diagrams, a bit about affine traversals, Pointed, and coerce).

  • part 6 – Template Haskell, aka “write your own makeLenses

It's a work in progress; the future parts will mention:

  • indexed things
  • Bazaar/Magma/Molten/Mafic, traversal stuff like partsOf, taking
  • fusing and confusing
  • benchmarks (view _1 vs fst? how much does fusing help? etc)
  • vertical composition, link
  • ala, AlongsideLeft
  • upon, link
  • pure profunctor lenses and traversals, link 1, link 2, link 3, link 4, symmetric lenses ((g a -> f b) -> g s -> f t), link
  • Control.Lens.Plated, Control.Lens.Level, Control.Lens.Zoom

Other Haskell stuff

Stuff that is sort of related to psychology

Stuff that is sort of related to linguistics


Several years ago I've been learning Racket and making notes (which then became somewhat popular):

You can’t perform that action at this time.