Advertisement
Guest User

Untitled

a guest
Nov 29th, 2014
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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 <: HanderReturnType](f: T => R)(implicit innerHandler: InnerHandler, outerHandler: OuterHandler): R
  15. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement