Skip to content

Instantly share code, notes, and snippets.

@johnazariah
Created December 31, 2016 14:01
Show Gist options
  • Save johnazariah/b155cb600213d2d7971fd224531ebdb9 to your computer and use it in GitHub Desktop.
Save johnazariah/b155cb600213d2d7971fd224531ebdb9 to your computer and use it in GitHub Desktop.
Maybe Computation Expression Builder
namespace Utility.Monads
[<AutoOpen>]
module MaybeMonad =
type MaybeBuilder() =
member this.Zero() = this.Return ()
member this.Bind(m, f) = Option.bind f m
member this.Return(x) = Some x
member this.ReturnFrom(x) = x
member this.Yield(x) = Some x
member this.YieldFrom(x) = x
let maybe = MaybeBuilder()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment