anchor.diff:  let ``monadplus laws``() =
       // http://www.haskell.org/haskellwiki/MonadPlus
       let mzero = maybe.Zero()
  -    let mplus x = orElse x
  +    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
  
positive.code: ﻿module FSharpx.Tests.MaybeTest
  
  open FSharpx.Option
  open NUnit.Framework
  open FsUnit
  
negative.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 catch" <|
          fun a b -> mplus (ret a) b = ret a
  //    fsCheck "left distribution" <|
  //        fun a b f -> (mplus a b >>= f) = (mplus (a >>= f) (b >>= f))
  