Represents programs that decide in an event driven context
This is basically a simple state machine like the following:
[*] -> InDecisive
InDecisive -- event --> Accepted
InDecisive -- join --> InDecisive
InDecisive -- rejection --> Rejected (resets and terminates)
Accepted -- event --> Accepted (accumulates)
Accepted -- rejection --> Rejected (resets and terminates)
It forms a monad error and also is traversable.
- Type parameters:
- A
program output type
- E
event type
- R
rejection type
- Companion:
- object
Value members
Concrete methods
binds another decision to this one, creates a new decision
binds another decision to this one, creates a new decision
creates a new decision that changes the output value of this one
creates a new decision that changes the output value of this one
Ignores events and errors and creates an Option that contains program output
Ignores events and errors and creates an Option that contains program output
@targetName("validateEitherNec")
Validates output using an EitherNec
Validates output using an EitherNec