- Writer <MonoidW, W, A>
- WriterExtensions
- Flatten <W, A> (this Writer<MSeq<W>, Seq<W>, Writer<MSeq<W>, Seq<W>, A>> ma)
- Flatten <MonoidW, W, A> (this Writer<MonoidW, W, Writer<MonoidW, W, A>> ma)
- ToWriter <W, A> (this (A Value, Seq<W> Output) ma)
- ToWriter <MonoidW, W, A> (this (A Value, W Output) ma)
- Run <W, A> (this Writer<MSeq<W>, Seq<W>, A> self)
- Run <MonoidW, W, A> (this Writer<MonoidW, W, A> self)
- ToSeq <W, A> (this Writer<MSeq<W>, Seq<W>, A> self)
- ToSeq <MonoidW, W, A> (this Writer<MonoidW, W, A> self)
- AsEnumerable <MonoidW, W, A> (this Writer<MonoidW, W, A> self)
- Count <W> (this Writer<MSeq<W>, Seq<W>, int> self)
- Count <MonoidW, W> (this Writer<MonoidW, W, int> self)
- ForAll <W, A> (this Writer<MSeq<W>, Seq<W>, A> self, Func<A, bool> pred)
- ForAll <MonoidW, W, A> (this Writer<MonoidW, W, A> self, Func<A, bool> pred)
- Exists <W, A> (this Writer<MSeq<W>, Seq<W>, A> self, Func<A, bool> pred)
- Exists <MonoidW, W, A> (this Writer<MonoidW, W, A> self, Func<A, bool> pred)
- Fold <FState, W, A> (this Writer<MSeq<W>, Seq<W>, A> self, FState initialState, Func<FState, A, FState> f)
- Fold <FState, MonoidW, W, A> (this Writer<MonoidW, W, A> self, FState initialState, Func<FState, A, FState> f)
- Fold <W, A> (this Writer<MSeq<W>, Seq<W>, A> self, Func<Seq<W>, A, Seq<W>> f)
- Fold <MonoidW, W, A> (this Writer<MonoidW, W, A> self, Func<W, A, W> f)
- Map <W, A, B> (this Writer<MSeq<W>, Seq<W>, A> self, Func<A, B> f)
- Map <MonoidW, W, A, B> (this Writer<MonoidW, W, A> self, Func<A, B> f)
- Do <W, A> (this Writer<MSeq<W>, Seq<W>, A> ma, Action<A> f)
- Do <MonoidW, W, A> (this Writer<MonoidW, W, A> ma, Action<A> f)
- Strict <W, A> (this Writer<MSeq<W>, Seq<W>, A> ma)
- Strict <MonoidW, W, A> (this Writer<MonoidW, W, A> ma)
- Pass <W, A> (this Writer<MSeq<W>, Seq<W>, (A, Func<Seq<W>, Seq<W>>)> self)
- Pass <MonoidW, W, A> (this Writer<MonoidW, W, (A, Func<W, W>)> self)
- Listen <W, A, B> (this Writer<MSeq<W>, Seq<W>, A> self, Func<Seq<W>, B> f)
- Listen <MonoidW, W, A, B> (this Writer<MonoidW, W, A> self, Func<W, B> f)
- Censor <W, A> (this Writer<MSeq<W>, Seq<W>, A> self, Func<Seq<W>, Seq<W>> f)
- Censor <MonoidW, W, A> (this Writer<MonoidW, W, A> self, Func<W, W> f)
- Bind <W, A, B> (this Writer<MSeq<W>, Seq<W>, A> self, Func<A, Writer<MSeq<W>, Seq<W>, B>> f)
- Bind <MonoidW, W, A, B> (this Writer<MonoidW, W, A> self, Func<A, Writer<MonoidW, W, B>> f)
- Select <W, A, B> (this Writer<MSeq<W>, Seq<W>, A> self, Func<A, B> f)
- Select <MonoidW, W, A, B> (this Writer<MonoidW, W, A> self, Func<A, B> f)
- SelectMany <W, A, B, C> ( this Writer<MSeq<W>, Seq<W>, A> self, Func<A, Writer<MSeq<W>, Seq<W>, B>> bind, Func<A, B, C> project)
- SelectMany <MonoidW, W, A, B, C> ( this Writer<MonoidW, W, A> self, Func<A, Writer<MonoidW, W, B>> bind, Func<A, B, C> project)
- Filter <W, A> (this Writer<MSeq<W>, Seq<W>, A> self, Func<A, bool> pred)
- Filter <MonoidW, W, A> (this Writer<MonoidW, W, A> self, Func<A, bool> pred)
- Where <W, A> (this Writer<MSeq<W>, Seq<W>, A> self, Func<A, bool> pred)
- Where <MonoidW, W, A> (this Writer<MonoidW, W, A> self, Func<A, bool> pred)
- Iter <W, A> (this Writer<MSeq<W>, Seq<W>, A> self, Action<A> action)
- Iter <MonoidW, W, A> (this Writer<MonoidW, W, A> self, Action<A> action)
- Prelude
- Writer <MonoidW, W, A> (A value)
- Writer <MonoidW, W, A> (A value, W output)
- Writer <W, A> (A value)
- Writer <W, A> (A value, Seq<W> output)
- count <MonoidW, W> (Writer<MonoidW, W, int> self)
- forall <MonoidW, W, A> (Writer<MonoidW, W, A> self, Func<A, bool> pred)
- exists <MonoidW, W, A> (Writer<MonoidW, W, A> self, Func<A, bool> pred)
- fold <FState, MonoidW, W, A> (Writer<MonoidW, W, A> self, FState initialState, Func<FState, A, FState> f)
- fold <MonoidW, W, A> (Writer<MonoidW, W, A> self, Func<W, A, W> f)
- pass <MonoidW, W, A> (Writer<MonoidW, W, (A, Func<W, W>)> self)
- listen <MonoidW, W, A, B> (Writer<MonoidW, W, A> self, Func<W, B> f)
- censor <MonoidW, W, A> (Writer<MonoidW, W, A> self, Func<W, W> f)
- tell <MonoidW, W> (W what)
- tell <W> (W what)
- bind <MonoidW, W, A, B> (Writer<MonoidW, W, A> self, Func<A, Writer<MonoidW, W, B>> f)
- map <MonoidW, W, A, B> (Writer<MonoidW, W, A> self, Func<A, B> f)
- filter <MonoidW, W, A> (Writer<MonoidW, W, A> self, Func<A, bool> pred)
- iter <MonoidW, W, A> (Writer<MonoidW, W, A> self, Action<A> action)
- trywrite <MonoidW, W, A> (Writer<MonoidW, W, A> m)
- tryfun <MonoidW, W, A> (Writer<MonoidW, W, A> ma)
class WriterExtensions Source #
Extension methods for Writer
method Writer<MSeq<W>, Seq<W>, A> Flatten <W, A> (this Writer<MSeq<W>, Seq<W>, Writer<MSeq<W>, Seq<W>, A>> ma) Source #
Monadic join
method Writer<MonoidW, W, A> Flatten <MonoidW, W, A> (this Writer<MonoidW, W, Writer<MonoidW, W, A>> ma) Source #
Monadic join
method Writer<MSeq<W>, Seq<W>, A> ToWriter <W, A> (this (A Value, Seq<W> Output) ma) Source #
Conversion from tuple to writer
type | W | Type of the writer monad's output |
type | A | Bound value type |
param | ma | Tuple to convert to writeer |
returns | Writer monad |
method Writer<MonoidW, W, A> ToWriter <MonoidW, W, A> (this (A Value, W Output) ma) Source #
Conversion from tuple to writer
type | W | Type of the writer monad's output |
type | A | Bound value type |
param | ma | Tuple to convert to writeer |
returns | Writer monad |
method (TryOption<A> Value, Seq<W> Output) Run <W, A> (this Writer<MSeq<W>, Seq<W>, A> self) Source #
Runs the Writer monad and memoizes the result in a TryOption monad. Use Match, IfSucc, IfNone, etc to extract.
method (TryOption<A> Value, W Output) Run <MonoidW, W, A> (this Writer<MonoidW, W, A> self) Source #
Runs the Writer monad and memoizes the result in a TryOption monad. Use Match, IfSucc, IfNone, etc to extract.
method Writer<MonoidW, W, Seq<A>> ToSeq <MonoidW, W, A> (this Writer<MonoidW, W, A> self) Source #
method Writer<MonoidW, W, Seq<A>> AsEnumerable <MonoidW, W, A> (this Writer<MonoidW, W, A> self) Source #
method Writer<MonoidW, W, int> Count <MonoidW, W> (this Writer<MonoidW, W, int> self) Source #
method Writer<MSeq<W>, Seq<W>, bool> ForAll <W, A> (this Writer<MSeq<W>, Seq<W>, A> self, Func<A, bool> pred) Source #
method Writer<MonoidW, W, bool> ForAll <MonoidW, W, A> (this Writer<MonoidW, W, A> self, Func<A, bool> pred) Source #
method Writer<MSeq<W>, Seq<W>, bool> Exists <W, A> (this Writer<MSeq<W>, Seq<W>, A> self, Func<A, bool> pred) Source #
method Writer<MonoidW, W, bool> Exists <MonoidW, W, A> (this Writer<MonoidW, W, A> self, Func<A, bool> pred) Source #
method Writer<MSeq<W>, Seq<W>, FState> Fold <FState, W, A> (this Writer<MSeq<W>, Seq<W>, A> self, FState initialState, Func<FState, A, FState> f) Source #
method Writer<MonoidW, W, FState> Fold <FState, MonoidW, W, A> (this Writer<MonoidW, W, A> self, FState initialState, Func<FState, A, FState> f) Source #
method Writer<MSeq<W>, Seq<W>, Seq<W>> Fold <W, A> (this Writer<MSeq<W>, Seq<W>, A> self, Func<Seq<W>, A, Seq<W>> f) Source #
method Writer<MonoidW, W, W> Fold <MonoidW, W, A> (this Writer<MonoidW, W, A> self, Func<W, A, W> f) Source #
method Writer<MSeq<W>, Seq<W>, B> Map <W, A, B> (this Writer<MSeq<W>, Seq<W>, A> self, Func<A, B> f) Source #
method Writer<MonoidW, W, B> Map <MonoidW, W, A, B> (this Writer<MonoidW, W, A> self, Func<A, B> f) Source #
method Writer<MSeq<W>, Seq<W>, A> Do <W, A> (this Writer<MSeq<W>, Seq<W>, A> ma, Action<A> f) Source #
Impure iteration of the bound value in the structure
returns | Returns the original unmodified structure |
method Writer<MonoidW, W, A> Do <MonoidW, W, A> (this Writer<MonoidW, W, A> ma, Action<A> f) Source #
Impure iteration of the bound value in the structure
returns | Returns the original unmodified structure |
method Writer<MSeq<W>, Seq<W>, A> Strict <W, A> (this Writer<MSeq<W>, Seq<W>, A> ma) Source #
Force evaluation of the Writer
method Writer<MonoidW, W, A> Strict <MonoidW, W, A> (this Writer<MonoidW, W, A> ma) Source #
Force evaluation of the Writer
method Writer<MSeq<W>, Seq<W>, A> Pass <W, A> (this Writer<MSeq<W>, Seq<W>, (A, Func<Seq<W>, Seq<W>>)> self) Source #
pass is an action that executes the monad, which returns a value and a function, and returns the value, applying the function to the output.
method Writer<MonoidW, W, A> Pass <MonoidW, W, A> (this Writer<MonoidW, W, (A, Func<W, W>)> self) Source #
pass is an action that executes the monad, which returns a value and a function, and returns the value, applying the function to the output.
method Writer<MSeq<W>, Seq<W>, (A, B)> Listen <W, A, B> (this Writer<MSeq<W>, Seq<W>, A> self, Func<Seq<W>, B> f) Source #
listen is an action that executes the monad and adds its output to the value of the computation.
method Writer<MonoidW, W, (A, B)> Listen <MonoidW, W, A, B> (this Writer<MonoidW, W, A> self, Func<W, B> f) Source #
listen is an action that executes the monad and adds its output to the value of the computation.
method Writer<MSeq<W>, Seq<W>, A> Censor <W, A> (this Writer<MSeq<W>, Seq<W>, A> self, Func<Seq<W>, Seq<W>> f) Source #
Censor is an action that executes the writer monad and applies the function f to its output, leaving the return value unchanged.
method Writer<MonoidW, W, A> Censor <MonoidW, W, A> (this Writer<MonoidW, W, A> self, Func<W, W> f) Source #
Censor is an action that executes the writer monad and applies the function f to its output, leaving the return value unchanged.
method Writer<MSeq<W>, Seq<W>, B> Bind <W, A, B> (this Writer<MSeq<W>, Seq<W>, A> self, Func<A, Writer<MSeq<W>, Seq<W>, B>> f) Source #
method Writer<MonoidW, W, B> Bind <MonoidW, W, A, B> (this Writer<MonoidW, W, A> self, Func<A, Writer<MonoidW, W, B>> f) Source #
method Writer<MSeq<W>, Seq<W>, B> Select <W, A, B> (this Writer<MSeq<W>, Seq<W>, A> self, Func<A, B> f) Source #
method Writer<MonoidW, W, B> Select <MonoidW, W, A, B> (this Writer<MonoidW, W, A> self, Func<A, B> f) Source #
method Writer<MSeq<W>, Seq<W>, C> SelectMany <W, A, B, C> ( this Writer<MSeq<W>, Seq<W>, A> self, Func<A, Writer<MSeq<W>, Seq<W>, B>> bind, Func<A, B, C> project) Source #
method Writer<MonoidW, W, C> SelectMany <MonoidW, W, A, B, C> ( this Writer<MonoidW, W, A> self, Func<A, Writer<MonoidW, W, B>> bind, Func<A, B, C> project) Source #
method Writer<MSeq<W>, Seq<W>, A> Filter <W, A> (this Writer<MSeq<W>, Seq<W>, A> self, Func<A, bool> pred) Source #
method Writer<MonoidW, W, A> Filter <MonoidW, W, A> (this Writer<MonoidW, W, A> self, Func<A, bool> pred) Source #
method Writer<MSeq<W>, Seq<W>, A> Where <W, A> (this Writer<MSeq<W>, Seq<W>, A> self, Func<A, bool> pred) Source #
method Writer<MonoidW, W, A> Where <MonoidW, W, A> (this Writer<MonoidW, W, A> self, Func<A, bool> pred) Source #
method Writer<MonoidW, W, A> Writer <MonoidW, W, A> (A value) Source #
Writer monad constructor
type | W | Writer type |
type | A | Bound value type |
param | value | Value |
returns | Writer monad |
method Writer<MonoidW, W, A> Writer <MonoidW, W, A> (A value, W output) Source #
Writer monad constructor
type | W | Writer type |
type | A | Bound value type |
param | output | Output |
param | value | Value |
returns | Writer monad |
method Writer<MSeq<W>, Seq<W>, A> Writer <W, A> (A value) Source #
Writer monad constructor
type | W | Writer type |
type | A | Bound value type |
param | value | Value |
returns | Writer monad |
method Writer<MSeq<W>, Seq<W>, A> Writer <W, A> (A value, Seq<W> output) Source #
Writer monad constructor
type | W | Writer type |
type | A | Bound value type |
param | output | Output |
param | value | Value |
returns | Writer monad |
method Writer<MonoidW, W, int> count <MonoidW, W> (Writer<MonoidW, W, int> self) Source #
Count
method Writer<MonoidW, W, bool> forall <MonoidW, W, A> (Writer<MonoidW, W, A> self, Func<A, bool> pred) Source #
For all
method Writer<MonoidW, W, bool> exists <MonoidW, W, A> (Writer<MonoidW, W, A> self, Func<A, bool> pred) Source #
Exists
method Writer<MonoidW, W, FState> fold <FState, MonoidW, W, A> (Writer<MonoidW, W, A> self, FState initialState, Func<FState, A, FState> f) Source #
Fold
method Writer<MonoidW, W, W> fold <MonoidW, W, A> (Writer<MonoidW, W, A> self, Func<W, A, W> f) Source #
Fold
method Writer<MonoidW, W, A> pass <MonoidW, W, A> (Writer<MonoidW, W, (A, Func<W, W>)> self) Source #
pass is an action that executes the monad, which returns a value and a function, and returns the value, applying the function to the output.
method Writer<MonoidW, W, (A, B)> listen <MonoidW, W, A, B> (Writer<MonoidW, W, A> self, Func<W, B> f) Source #
listen is an action that executes the monad and adds its output to the value of the computation.
method Writer<MonoidW, W, A> censor <MonoidW, W, A> (Writer<MonoidW, W, A> self, Func<W, W> f) Source #
Censor is an action that executes the writer monad and applies the function f to its output, leaving the return value unchanged.
method Writer<MonoidW, W, Unit> tell <MonoidW, W> (W what) Source #
Tells the monad what you want it to hear. The monad carries this 'packet' upwards, merging it if needed (hence the Monoid requirement).
type | W | Type of the value tell |
param | what | The value to tell |
returns | Updated writer monad |
method Writer<MSeq<W>, Seq<W>, Unit> tell <W> (W what) Source #
Tells the monad what you want it to hear. The monad carries this 'packet' upwards, merging it if needed (hence the Monoid requirement).
type | W | Type of the value tell |
param | what | The value to tell |
returns | Updated writer monad |
method Writer<MonoidW, W, B> bind <MonoidW, W, A, B> (Writer<MonoidW, W, A> self, Func<A, Writer<MonoidW, W, B>> f) Source #
Bind
method Writer<MonoidW, W, B> map <MonoidW, W, A, B> (Writer<MonoidW, W, A> self, Func<A, B> f) Source #
Map
method Writer<MonoidW, W, A> filter <MonoidW, W, A> (Writer<MonoidW, W, A> self, Func<A, bool> pred) Source #
Filter
method Writer<MonoidW, W, Unit> iter <MonoidW, W, A> (Writer<MonoidW, W, A> self, Action<A> action) Source #
Iter