|
Scala example source code file (ApplicativeBuilder.scala)
The ApplicativeBuilder.scala Scala example source codepackage scalaz package syntax /** @see [[scalaz.syntax.ApplyOps]]`#|@|` */ private[scalaz] trait ApplicativeBuilder[M[_], A, B] { val a: M[A] val b: M[B] def apply[C](f: (A, B) => C)(implicit ap: Apply[M]): M[C] = ap.apply2(a, b)(f) def tupled(implicit ap: Apply[M]): M[(A, B)] = apply(Tuple2.apply) def ⊛[C](cc: M[C]) = new ApplicativeBuilder3[C] { val c = cc } def |@|[C](cc: M[C]) = ⊛(cc) sealed abstract class ApplicativeBuilder3[C] { val c: M[C] def apply[D](f: (A, B, C) => D)(implicit ap: Apply[M]): M[D] = ap.apply3(a, b, c)(f) def tupled(implicit ap: Apply[M]): M[(A, B, C)] = apply(Tuple3.apply) def ⊛[D](dd: M[D]) = new ApplicativeBuilder4[D] { val d = dd } def |@|[D](dd: M[D]) = ⊛(dd) sealed abstract class ApplicativeBuilder4[D] { val d: M[D] def apply[E](f: (A, B, C, D) => E)(implicit ap: Apply[M]): M[E] = ap.apply4(a, b, c, d)(f) def tupled(implicit ap: Apply[M]): M[(A, B, C, D)] = apply(Tuple4.apply) def ⊛[E](ee: M[E]) = new ApplicativeBuilder5[E] { val e = ee } def |@|[E](ee: M[E]) = ⊛(ee) sealed abstract class ApplicativeBuilder5[E] { val e: M[E] def apply[F](f: (A, B, C, D, E) => F)(implicit ap: Apply[M]): M[F] = ap.apply5(a, b, c, d, e)(f) def tupled(implicit ap: Apply[M]): M[(A, B, C, D, E)] = apply(Tuple5.apply) def ⊛[F](f: M[F]) = new ApplicativeBuilder6[F] { val ff = f } def |@|[F](f: M[F]) = ⊛(f) sealed abstract class ApplicativeBuilder6[F] { val ff: M[F] def apply[G](f: (A, B, C, D, E, F) => G)(implicit ap: Apply[M]): M[G] = ap.apply6(a, b, c, d, e, ff)(f) def tupled(implicit ap: Apply[M]): M[(A, B, C, D, E, F)] = apply(Tuple6.apply) def ⊛[G](gg: M[G]) = new ApplicativeBuilder7[G] { val g = gg } def |@|[G](gg: M[G]) = ⊛(gg) sealed abstract class ApplicativeBuilder7[G] { val g: M[G] def apply[H](f: (A, B, C, D, E, F, G) => H)(implicit ap: Apply[M]): M[H] = ap.apply7(a, b, c, d, e, ff, g)(f) def tupled(implicit ap: Apply[M]): M[(A, B, C, D, E, F, G)] = apply(Tuple7.apply) def ⊛[H](hh: M[H]) = new ApplicativeBuilder8[H] { val h = hh } def |@|[H](hh: M[H]) = ⊛(hh) sealed abstract class ApplicativeBuilder8[H] { val h: M[H] def apply[I](f: (A, B, C, D, E, F, G, H) => I)(implicit ap: Apply[M]): M[I] = ap.apply8(a, b, c, d, e, ff, g, h)(f) def tupled(implicit ap: Apply[M]): M[(A, B, C, D, E, F, G, H)] = apply(Tuple8.apply) def ⊛[I](ii: M[I]) = new ApplicativeBuilder9[I] { val i = ii } def |@|[I](ii: M[I]) = ⊛(ii) sealed abstract class ApplicativeBuilder9[I] { val i: M[I] def apply[J](f: (A, B, C, D, E, F, G, H, I) => J)(implicit ap: Apply[M]): M[J] = ap.apply9(a, b, c, d, e, ff, g, h, i)(f) def tupled(implicit ap: Apply[M]): M[(A, B, C, D, E, F, G, H, I)] = apply(Tuple9.apply) def ⊛[J](jj: M[J]) = new ApplicativeBuilder10[J] { val j = jj } def |@|[J](jj: M[J]) = ⊛(jj) sealed abstract class ApplicativeBuilder10[J] { val j: M[J] def apply[K](f: (A, B, C, D, E, F, G, H, I, J) => K)(implicit ap: Apply[M]): M[K] = ap.apply10(a, b, c, d, e, ff, g, h, i, j)(f) def tupled(implicit ap: Apply[M]): M[(A, B, C, D, E, F, G, H, I, J)] = apply(Tuple10.apply) def ⊛[K](kk: M[K]) = new ApplicativeBuilder11[K] { val k = kk } def |@|[K](kk: M[K]) = ⊛(kk) sealed abstract class ApplicativeBuilder11[K] { val k: M[K] def apply[L](f: (A, B, C, D, E, F, G, H, I, J, K) => L)(implicit ap: Apply[M]): M[L] = ap.apply11(a, b, c, d, e, ff, g, h, i, j, k)(f) def tupled(implicit ap: Apply[M]): M[(A, B, C, D, E, F, G, H, I, J, K)] = apply(Tuple11.apply) def ⊛[L](ll: M[L]) = new ApplicativeBuilder12[L] { val l = ll } def |@|[L](ll: M[L]) = ⊛(ll) sealed abstract class ApplicativeBuilder12[L] { val l: M[L] def apply[MM](f: (A, B, C, D, E, F, G, H, I, J, K, L) => MM)(implicit ap: Apply[M]): M[MM] = ap.apply12(a, b, c, d, e, ff, g, h, i, j, k, l)(f) def tupled(implicit ap: Apply[M]): M[(A, B, C, D, E, F, G, H, I, J, K, L)] = apply(Tuple12.apply) } } } } } } } } } } } Other Scala examples (source code examples)Here is a short list of links related to this Scala ApplicativeBuilder.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.