anchor.diff:          member inline x.Combine(a, b) = mplus a b
       
       let monad     = new MonadBuilder()
  -    let monadPlus = new MonadPlusBuilder()+    let monadPlus = new MonadPlusBuilder()
  
positive.code: 
  
      // Foldable
      let inline foldr (f: 'a -> 'b -> 'b) (z:'b) x :'b = Inline.instance (Foldable.Foldr, x) (f,z)
      let inline foldMap f x = Inline.instance (Foldable.FoldMap, x) f
  
  
      // Traversable
      let inline traverse f t = Inline.instance (Traversable.Traverse, t) f
      let inline sequenceA  x = traverse id x
  
  
      // Comonads
      let inline extract   x = Inline.instance (Comonad.Extract  , x) ()
      let inline duplicate x = Inline.instance (Comonad.Duplicate, x) ()
      let inline extend  g s = map g (duplicate s)
      let inline (=>>)   s g = map g (duplicate s)
  
  
      // Monad Transformers
      let inline lift (x:'ma) = Inline.instance MonadTrans.Lift x
      let inline liftIO (x: Async<'a>) = Inline.instance MonadAsync.LiftAsync x
      let inline callCC f = Inline.instance MonadCont.CallCC f
      let inline get() = Inline.instance MonadState.Get ()
      let inline put x = Inline.instance MonadState.Put x
      let inline ask()     = Inline.instance  MonadReader.Ask ()
      let inline local f m = Inline.instance (MonadReader.Local, m) f
      let inline tell    x = Inline.instance  MonadWriter.Tell x
      let inline listen  m = Inline.instance (MonadWriter.Listen, m) ()
      let inline pass    m = Inline.instance (MonadWriter.Pass  , m) ()
      let inline throw x   = Inline.instance  MonadError.ThrowError x
      let inline catch v h = Inline.instance (MonadError.CatchError, v) h
  
  
      // Idiom brackets
  
negative.code: namespace FSharpPlus
  
  open FsControl.Core.Abstractions
  
  