Polymorphic types

“The requirements of a polymorphic type, by definition, come from where you use the type, not from the type itself.” (S. Parent) "When I use inheritence, I build the use of my object into my object. On the contrary, what I want to do is separate the use of my…

Effects and structure

"An effect is the structural information of a Functor, i.e., the part that is not parametric. The state value in State, failure in Maybe and Either, the number of elements in [], and – of course – arbitrary external side effects in IO." (C. A. McCann)…

Mathematicians vs. Computer scientists

"There is a considerable difference between a mathematician’s view of the world and a computer scientist’s. To a mathematician all structures are static: they have always been and will always be; the only time dependence is that we just have not discovered them all yet. The computer scientist…

Category of C++ Types

In the first installment of "Category theory for programmers", Bartosz Milewski introduces a particular category in which objects and morphisms are thought as C++ values and C++ functions, respectively. Instead, let us try to delineate the category in which objects are C++ types. In such a category, morphisms are metafunctions…

The essence of linear algebra

This series of video-lectures aims at conveying the essential geometrical intuitions behind the most important linear algebra artifacts.…

Domain knowledge

"Knowledge that is purely domain specific should never be leaked out into clients. Even if the client is an Application Service." (V. Vernon)…