trait
Free
[S[+_], +A]
extends AnyRef
Value Members
-
def
!=
(arg0: AnyRef): Boolean
-
def
!=
(arg0: Any): Boolean
-
def
##
(): Int
-
def
==
(arg0: AnyRef): Boolean
-
def
==
(arg0: Any): Boolean
-
def
>>=
[B]
(f: (A) ⇒ Free[S, B]): Free[S, B]
-
def
asInstanceOf
[T0]
: T0
-
def
clone
(): AnyRef
-
def
collect
[B, C >: A]
(implicit ev: $less$tilde$less[Free[S, C], Source[B, C]], S: Functor[S]): (Vector[B], C)
-
def
drain
[E, B, C >: A]
(source: Source[E, B])(implicit ev: $less$tilde$less[Free[S, C], Sink[E, C]], S: Functor[S]): (C, B)
-
def
drive
[E, B, C >: A]
(sink: Sink[Option[E], B])(implicit ev: $less$tilde$less[Free[S, C], Source[E, C]], S: Functor[S]): (C, B)
-
def
eq
(arg0: AnyRef): Boolean
-
def
equals
(arg0: Any): Boolean
-
def
feed
[E, C >: A]
(ss: Stream[E])(implicit ev: $less$tilde$less[Free[S, C], Sink[E, C]], S: Functor[S]): C
-
def
finalize
(): Unit
-
def
flatMap
[B]
(f: (A) ⇒ Free[S, B]): Free[S, B]
-
def
getClass
(): java.lang.Class[_]
-
def
hashCode
(): Int
-
def
isInstanceOf
[T0]
: Boolean
-
def
map
[B]
(f: (A) ⇒ B): Free[S, B]
-
def
mapSuspension
[T[+_]]
(f: ~>[S, T])(implicit S: Functor[S]): Free[T, A]
-
def
ne
(arg0: AnyRef): Boolean
-
def
notify
(): Unit
-
def
notifyAll
(): Unit
-
def
resume
(implicit S: Functor[S]): Either[S[Free[S, A]], A]
-
def
run
[B >: A]
(implicit ev: $less$tilde$less[Free[S, B], Trampoline[B]], S: Functor[S]): B
-
def
synchronized
[T0]
(arg0: ⇒ T0): T0
-
def
toString
(): String
-
def
wait
(): Unit
-
def
wait
(arg0: Long, arg1: Int): Unit
-
def
wait
(arg0: Long): Unit
-
def
zipWith
[B, C]
(tb: Free[S, B], f: (A, B) ⇒ C)(implicit S: Functor[S]): Free[S, C]
Inherited from AnyRef
Inherited from Any
A free operational monad for some functor
S
. Binding is done using the heap instead of the stack, allowing tail-call elimination.