Type-class describing an Applicative which supports
capturing a deferred evaluation of a by-name F[A].
Evaluation can be suspended until a value is extracted.
The suspend operation can be thought of as a factory
of F[A] instances, that will produce fresh instances,
along with possible side-effects, on each evaluation.
The purpose of this type-class is to support the data-types in the
Monix library and it is considered a shim for a lawful type-class
to be supplied by libraries such as Cats or Scalaz or equivalent.
Credit should be given where it is due. The type-class encoding has
been copied from the Scado project and
Scalaz 8 and the type has
been inspired by Cats and
FS2.
Type-class describing an Applicative which supports capturing a deferred evaluation of a by-name
F[A]
.Evaluation can be suspended until a value is extracted. The
suspend
operation can be thought of as a factory ofF[A]
instances, that will produce fresh instances, along with possible side-effects, on each evaluation.The purpose of this type-class is to support the data-types in the Monix library and it is considered a shim for a lawful type-class to be supplied by libraries such as Cats or Scalaz or equivalent.
To implement it in instances, inherit from DeferrableClass.
Credit should be given where it is due. The type-class encoding has been copied from the Scado project and Scalaz 8 and the type has been inspired by Cats and FS2.