Function Monads for .NET - Monad, Either, Maybe, Result and Id - with railway-oriented programming extension methods.