The Max-Abstraction Impulse, and Everything Else Wrong with Type-Level Genericity

These were my comments on RFC-1124 from F# 7.0, Interfaces With Static Abstract Methods, in the "Drawbacks Section". It forms an essay on everything wrong with this particular form of Statically Constrained Genericity, and many of the things wrong with all the other forms. Drawbacks This feature sits uncomfortably in F#. Its addition to the … Continue reading The Max-Abstraction Impulse, and Everything Else Wrong with Type-Level Genericity

My Position on Type Classes

This is the most thumbed-up suggestion in fslang-suggestions and is over 7 years old. Is there any hope this will ever happen? From https://github.com/fsharp/fslang-suggestions/issues/243#issuecomment-916079347 My position is pretty clear. I'll recap it here. The utility of type classes for the kind of "functions + data" coding we aim to support in F#, in the context … Continue reading My Position on Type Classes

On Computation expressions, ‘do’ notation and List comprehensions

Originally published in October 2020 Notes based on a discussion with Phillip Wadler, 10/01/2020. This document is a work in progress. Please leave comments or send feedback. I may have made mistakes, please send a PR to correct. Computation expressions (CEs) are a syntactic de-sugaring of language elements like for x in xs ... to … Continue reading On Computation expressions, ‘do’ notation and List comprehensions

Quote of the Week: “What can C# do that F# cannot?”

The F# community quote of the week was from Tomas Petricek in answer to a question on Twitter, see the pic on the right.  What Tomas says is not 100% technically accurate: you can get NullReferenceException (NRE) in F# if you use C# libraries. C#-defined-types+the "null" literal, or some backdoors like Unchecked.defaultof<_>. However what Tomas says does match people’s … Continue reading Quote of the Week: “What can C# do that F# cannot?”