# FSharpPlus Monad
A [[Monad]] in FSharpPlus needs to have:
- Return: `static member Return (x : 'T) : 'Monad<'T>` (operator `result`)
- Bind: `static member (>>=) (x : Monad<'T>, f : 'T->Monad<'U>) : Monad<'U>` (operator `bind`). The first parameter of `>>=` is the instance of the monad and the second the function.
Implemented by:
- [[FSharpPlus Free|Free]]