Slide 101
Slide 101 text
trait Client[F[_]] {
def run(req: Request[F]) : Resource[F, Response[F]]
def stream(req: Request[F]): Stream[F, Response[F]]
def fetch[A](req: Request[F])(f: Response[F] => F[A]) : F[A]
def expect[A](req: Request[F])(implicit d: EntityDecoder[F, A]): F[A]
def status(req: Request[F]). : F[Status]
def successful(req: Request[F]): F[Boolean]
def toKleisli[A](f: Response[F] => F[A]): Kleisli[F, Request[F], A]
//...
}