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
Tag: F#
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
Rethinking Applicatives
On Thursday Nick Blair gave a fabulous talk on using the functional design pattern called "applicatives" for data processing and validation in the context of AWS cloud programming (content). As part of a cooperative follow-up, I thought it would be cool if those of us in the London F# community use this as a practical … Continue reading Rethinking Applicatives
Rethinking Currying
Originally published 10/02/2020 Over the weekend I was asked by Andy Gocke about the history/choices of the inclusion of currying and partial application in the F# design. Am happy to discuss, here's a quick note. First, from the historical perspective most of this comes in via F# <-- OCaml <-- Edinburgh ML. For raw core … Continue reading Rethinking Currying
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?”
