A Capability[R, I, E, A]
represents a capability of environment R
that
takes an input I
and returns an effect that may fail with an error E
or
produce a single A
.
A Capability[R, I, E, A]
represents a capability of environment R
that
takes an input I
and returns an effect that may fail with an error E
or
produce a single A
.
To represent polymorphic capabilities you must use one of lazy
Capability.Poly
types which allow you to delay the declaration of some
types to call site.
To construct capability tags you should start by creating a Mock[R]
and
extend publicly available Effect
, Method
, Sink
or Stream
type
members.
An Expectation[R]
is an immutable tree structure that represents
expectations on environment R
.
A Mock[R]
represents a mockable environment R
.
A Proxy
provides the machinery to map mocked invocations to predefined
results and check some constraints on the way.
A Result[-I, +E, +A]
represents the value or failure that will be returned
by mock expectation when invoked.