If you’re a seasoned .NET library author, there is a good chance that you’ve had to write some component that is acting on arbitrary user-defined types. This includes serializers, struc…| Eirik Tsarpalis' blog
Programming with algebraic effects and handlers, a method for reasoning about computational effects of programs that originates from functional programming research, has recently found increasing a…| Eirik Tsarpalis' blog
A few years back, I blogged about how one could use the TypeShape library for writing practical generic programs in F#. While the library has seen success in both OSS and proprietary applications, …| Eirik Tsarpalis' blog
At Jet we do a lot of event sourcing. Our event types are typically modelled using discriminated unions: Since DUs carry no canonical representation in most popular serialization formats, encoding …| Eirik Tsarpalis' blog
One of the interesting challenges when dealing with generic programming is testing. How could you possibly achieve extensive test coverage for a piece of code that works with arbitrary types? Suppo…| Eirik Tsarpalis' blog
During a recent conversation with a group of F# developers, I started making the case for recursion and its importance in day-to-day programming. My peers reacted with surprise to this opinion of m…| Eirik Tsarpalis' blog
Point-free programming (or point-less programming, for the more cynically inclined) is a paradigm that advocates the formulation of programs by means of function composition. In the point-free styl…| Eirik Tsarpalis' blog
F# is a functional-first programming language that comes with a substantial object-oriented feature set. It is so feature-complete in fact, that almost any C# class can be ported over to F# code wi…| Eirik Tsarpalis' blog
Purely functional programming according to wikipedia designates a programming paradigm that treats all computation as the evaluation of mathematical functions. Purely functional programing may also…| Eirik Tsarpalis' blog
Exception handling is an error management paradigm that has often been met with criticism. Such criticisms typically revolve around scoping considerations, exceptions-as-control-flow abuse or even …| Eirik Tsarpalis' blog