In a previous post on F# data access I dropped a hint about a functional way of handling invalid arguments. The code in question looked like this.
let insertLocation city state =
if state |> String.length >= 2
then DataAccess.createLocation c[...]

I'm going about my business dealing with option types thinking I finally have a good handle on monad usage within F# when suddenly I receive the following error.
This expression was expected to have type
int
but here has type
'a option
My firs[...]

Towards generic programming in F#: thoughts on generalizing the earlier combinators over records and unions...
I wrote earlier a little post on combinators over records and unions. This approach in F# is still very attractive to me for defining various[...]

There is lately quite a lot of fuss over C# 5.0, caused by the new async features. The C# async feature is based on (or was inspired by) the F#’s Async computation expression, which I will now discuss a bit (and then present my improvement). Usually, asyn[...]

In this article, I will present an extension to the F# compiler (I used November 2010 CTP from the F# PowerPack site). I was inspired by two things. The first was an old attempt to create a computation builder for XML/HTML objects, which wasn’t very succe[...]