View difference between Paste ID: WkbbVYid and AUA74KsF
SHOW: | | - or go back to the newest paste.
1
sealed trait DB[T, InnerContext[_], HanderReturnType] {
2
  type InnerHandler = Handler[HanderReturnType, InnerContext]
3
  type OuterHandler = Handler[InnerContext[HanderReturnType], Try]
4
  type Mapped[T] = DB[T, InnerContext, HanderReturnType]
5
6
  val value: Try[InnerContext[T]]
7
8
  def map[R](f: T => R): Mapped[R]
9
  def flatMap[R](f: T => Mapped[R]): Mapped[R]
10
  
11
  def purify: DB.Pure[InnerContext[T]] = DbPure(value)
12
  def reify: Try[InnerContext[T]] = value
13
  
14-
  def run[R](f: T => R = _)(implicit innerHandler: InnerHandler, outerHandler: OuterHandler): R
14+
  def run[R <: HanderReturnType](f: T => R)(implicit innerHandler: InnerHandler, outerHandler: OuterHandler): R
15
}