Cole Brown
SPJ recently gave a fantastic talk on Edward Kmett's wildly useful lens
library. Simon,a brilliant programmer and one of Haskell's designers, had little to no experience with lens
prior to this talk and, resultingly, is able to offer a shockingly fresh perspective.
In his talk, he walks the audience through his deconstruction of the library — an illuminating journey. There is a lot of insight exposed, but there was one (perhaps unspoken) sentiment that struck me:
Functional programmers tend to prefer simple, versatile data structures like lists and trees. The reasoning is often times simple: simple data types yield powerful abstractions. One can implement a mind-boggling number of algorithms using maps and folds over lists (and associative lists).
While Haskell caters to this simplified model of programming, Haskell's type system and record syntax also encourage the use of abstract data ty