aboutsummaryrefslogtreecommitdiff
path: root/core/lib/FiberTypes.scala
blob: 35f6a42c751023e98e6a9441a2784e8e1a4ec93d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package eu.mulk.fibers

import scala.language.implicitConversions
import scala.util.continuations.cpsParam

private[fibers] trait FiberTypes {
  type Effect[_]

  /**
    * Annotates a computation as a fiber.
    *
    * Annotate the return type of a fibrational function with this type
    * annotator.
    *
    * @tparam Out the type of objects [[Fiber.emit]]ted by the fiber.
    * @see [[Fiber.run]]
    */
  type fiber[Out] = cpsParam[Any, (Effect[Out], Any ⇒ Any)]
}