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 MonadClass.
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 extracted from Cats.
This type-class represents monads with a tail-recursive
tailRecM
implementation.Based on Phil Freeman's Stack Safety for Free.
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 MonadClass.
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 extracted from Cats.