anchor.diff:  ﻿module FSharpx.Tests.MaybeTest
   
  +open FSharpx
   open FSharpx.Option
   open NUnit.Framework
   open FsUnit
  
positive.code:         fun a b c -> mplus (mplus a b) c = mplus a (mplus b c)
      fsCheck "left zero" <|
          fun a -> mzero >>= a = mzero
      fsCheck "left distribution" <|
          fun a b c -> mplus a b >>= c = mplus (a >>= c) (b >>= c)
  
negative.code: let ``monadplus laws``() =
      // http://www.haskell.org/haskellwiki/MonadPlus
      let mzero = maybe.Zero()
      let ret = maybe.Return
      let mplus x = flip orElse x
      let inline (>>=) m f = maybe.Combine(m,f)
      fsCheck "monoid left identity" <|
          fun a -> mplus a mzero = a
  