eu.timepit.refined.internal.RefineMPartiallyApplied.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of refined_sjs1_2.12 Show documentation
Show all versions of refined_sjs1_2.12 Show documentation
Simple refinement types for Scala
package eu.timepit.refined.internal
import eu.timepit.refined.api.{RefType, Validate}
import eu.timepit.refined.macros.RefineMacro
/**
* Helper class that allows the type `T` to be inferred from calls like
* `[[api.RefType.refineM]][P](t)`.
*
* See [[http://tpolecat.github.io/2015/07/30/infer.html]] for a detailed
* explanation of this trick.
*/
final class RefineMPartiallyApplied[F[_, _], P] {
def apply[T](t: T)(implicit rt: RefType[F], v: Validate[T, P]): F[T, P] =
macro RefineMacro.impl[F, T, P]
}