All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.specs2.control.eff.syntax.reader.scala Maven / Gradle / Ivy

There is a newer version: 4.10.6
Show newest version
package org.specs2.control.eff.syntax

import scalaz._
import org.specs2.control.eff._

object reader extends reader

trait reader {

  implicit class ReaderEffectOps[R <: Effects, A](e: Eff[R, A]) {

    def runReader[C, U <: Effects](c: C)(implicit member: Member.Aux[({type l[X]=Reader[C, X]})#l, R, U]): Eff[U, A] =
      ReaderInterpretation.runReader(c)(e)

    def runReaderTagged[C, U <: Effects, T](c: C)(implicit member: Member.Aux[({type l[X] = Reader[C, X] @@ T})#l, R, U]): Eff[U, A] =
      ReaderInterpretation.runReaderTagged(c)(e)

    def localReader[BR, U, C, B](getter: B => C)(implicit m1: Member.Aux[({type l[X]=Reader[C, X]})#l, R, U], m2: Member.Aux[({type l[X]=Reader[B, X]})#l, BR, U]): Eff[BR, A] =
      ReaderInterpretation.localReader[R, BR, U, C, B, A](e, getter)
  }

}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy