# Choice

#### trait Choice[-In, +Out, +A, +X] extends Rule[In, Out, A, X]

Linear Supertypes
Rule[In, Out, A, X], (In) ⇒ Result[Out, A, X], AnyRef, Any
Ordering
1. Alphabetic
2. By inheritance
Inherited
1. Choice
2. Rule
3. Function1
4. AnyRef
5. Any
Implicitly
1. by any2stringadd
2. by StringFormat
3. by Ensuring
4. by ArrowAssoc
1. Hide All
2. Show all
Learn more about member selection
Visibility
1. Public
2. All

### Abstract Value Members

2. #### abstract val factory: Rules

Definition Classes
Rule

### Concrete Value Members

1. #### final def !=(arg0: Any): Boolean

Definition Classes
AnyRef → Any
2. #### def !^[Y](fx2y: (X) ⇒ Y): Rule[In, Out, A, Y]

Maps an Error

Maps an Error

Definition Classes
Rule
3. #### final def ##(): Int

Definition Classes
AnyRef → Any
4. #### def +(other: String): String

Implicit information
This member is added by an implicit conversion from Choice[In, Out, A, X] to any2stringadd[Choice[In, Out, A, X]] performed by method any2stringadd in scala.Predef.
Definition Classes
any2stringadd
5. #### def -[In2 <: In](exclude: ⇒ Rule[In2, Any, Any, Any]): Rule[In2, Out, A, X]

Definition Classes
Rule
6. #### def ->[B](y: B): (Choice[In, Out, A, X], B)

Implicit information
This member is added by an implicit conversion from Choice[In, Out, A, X] to ArrowAssoc[Choice[In, Out, A, X]] performed by method ArrowAssoc in scala.Predef.
Definition Classes
ArrowAssoc
Annotations
@inline()
7. #### def -^[B](b: B): Rule[In, Out, B, X]

Definition Classes
Rule
8. #### def -~[Out2, B, X2 >: X](next: ⇒ Rule[Out, Out2, B, X2]): Rule[In, Out2, B, X2]

Definition Classes
Rule
9. #### def -~![Out2, B, X2 >: X](next: ⇒ Rule[Out, Out2, B, X2]): Rule[In, Out2, B, Any]

Definition Classes
Rule
10. #### def <~:[InPrev, B, X2 >: X](prev: ⇒ Rule[InPrev, In, (A) ⇒ B, X2]): Rule[InPrev, Out, B, X2]

Apply the result of this rule to the function returned by the previous rule

Apply the result of this rule to the function returned by the previous rule

Definition Classes
Rule
11. #### final def ==(arg0: Any): Boolean

Definition Classes
AnyRef → Any
12. #### def >->[Out2, B, X2 >: X](fa2resultb: (A) ⇒ Result[Out2, B, X2]): Rule[In, Out2, B, X2]

Definition Classes
Rule
13. #### def >>[Out2, B, X2 >: X](fa2ruleb: (A) ⇒ (Out) ⇒ Result[Out2, B, X2]): Rule[In, Out2, B, X2]

Definition Classes
Rule
14. #### def >>&[B, X2 >: X](fa2ruleb: (A) ⇒ (Out) ⇒ Result[Any, B, X2]): Rule[In, Out, B, X2]

Definition Classes
Rule
15. #### def >>?[Out2, B, X2 >: X](pf: PartialFunction[A, Rule[Out, Out2, B, X2]]): Rule[In, Out2, B, X2]

Definition Classes
Rule
16. #### def >~>[Out2, B1, B2, B >: A, C, X2 >: X](f: (B1, B2) ⇒ (Out) ⇒ Result[Out2, C, X2])(implicit arg0: (B) ⇒ ~[B1, B2]): Rule[In, Out2, C, X2]

>~>(f) is equivalent to >> { case b1 ~ b2 => f(b1, b2) }

>~>(f) is equivalent to >> { case b1 ~ b2 => f(b1, b2) }

Definition Classes
Rule
17. #### def ??(pf: PartialFunction[A, Any]): Rule[In, Out, A, X]

Definition Classes
Rule
18. #### def ^-^[B1, B2 >: A, C](f: (B1, B2) ⇒ C): Rule[In, Out, (B1) ⇒ C, X]

-(f) is equivalent to ^^ { b2 => b1 => f(b1, b2) }

-(f) is equivalent to ^^ { b2 => b1 => f(b1, b2) }

Definition Classes
Rule
19. #### def ^^[B](fa2b: (A) ⇒ B): Rule[In, Out, B, X]

Definition Classes
Rule
20. #### def ^^?[B](pf: PartialFunction[A, B]): Rule[In, Out, B, X]

Definition Classes
Rule
21. #### def ^~>~^[B1, B2, B3, B >: A, C](f: (B1, B2, B3) ⇒ C)(implicit arg0: (B) ⇒ ~[B2, B3]): Rule[In, Out, (B1) ⇒ C, X]

~>~(f) is equivalent to ^^ { case b2 ~ b3 => b1 => f(b1, b2, b3) }

~>~(f) is equivalent to ^^ { case b2 ~ b3 => b1 => f(b1, b2, b3) }

Definition Classes
Rule
22. #### def ^~^[B1, B2, B >: A, C](f: (B1, B2) ⇒ C)(implicit arg0: (B) ⇒ ~[B1, B2]): Rule[In, Out, C, X]

~(f) is equivalent to ^^ { case b1 ~ b2 => f(b1, b2) }

~(f) is equivalent to ^^ { case b1 ~ b2 => f(b1, b2) }

Definition Classes
Rule
23. #### def ^~~^[B1, B2, B3, B >: A, C](f: (B1, B2, B3) ⇒ C)(implicit arg0: (B) ⇒ ~[~[B1, B2], B3]): Rule[In, Out, C, X]

~~(f) is equivalent to ^^ { case b1 ~ b2 ~ b3 => f(b1, b2, b3) }

~~(f) is equivalent to ^^ { case b1 ~ b2 ~ b3 => f(b1, b2, b3) }

Definition Classes
Rule
24. #### def ^~~~^[B1, B2, B3, B4, B >: A, C](f: (B1, B2, B3, B4) ⇒ C)(implicit arg0: (B) ⇒ ~[~[~[B1, B2], B3], B4]): Rule[In, Out, C, X]

~~~(f) is equivalent to ^^ { case b1 ~ b2 ~ b3 ~ b4 => f(b1, b2, b3, b4) }

~~~(f) is equivalent to ^^ { case b1 ~ b2 ~ b3 ~ b4 => f(b1, b2, b3, b4) }

Definition Classes
Rule
25. #### def ^~~~~^[B1, B2, B3, B4, B5, B >: A, C](f: (B1, B2, B3, B4, B5) ⇒ C)(implicit arg0: (B) ⇒ ~[~[~[~[B1, B2], B3], B4], B5]): Rule[In, Out, C, X]

~~~~(f) is equivalent to ^^ { case b1 ~ b2 ~ b3 ~ b4 ~ b5 => f(b1, b2, b3, b4, b5) }

~~~~(f) is equivalent to ^^ { case b1 ~ b2 ~ b3 ~ b4 ~ b5 => f(b1, b2, b3, b4, b5) }

Definition Classes
Rule
26. #### def ^~~~~~^[B1, B2, B3, B4, B5, B6, B >: A, C](f: (B1, B2, B3, B4, B5, B6) ⇒ C)(implicit arg0: (B) ⇒ ~[~[~[~[~[B1, B2], B3], B4], B5], B6]): Rule[In, Out, C, X]

~~~~~(f) is equivalent to ^^ { case b1 ~ b2 ~ b3 ~ b4 ~ b5 ~ b6 => f(b1, b2, b3, b4, b5, b6) }

~~~~~(f) is equivalent to ^^ { case b1 ~ b2 ~ b3 ~ b4 ~ b5 ~ b6 => f(b1, b2, b3, b4, b5, b6) }

Definition Classes
Rule
27. #### def ^~~~~~~^[B1, B2, B3, B4, B5, B6, B7, B >: A, C](f: (B1, B2, B3, B4, B5, B6, B7) ⇒ C)(implicit arg0: (B) ⇒ ~[~[~[~[~[~[B1, B2], B3], B4], B5], B6], B7]): Rule[In, Out, C, X]

~~~~~~(f) is equivalent to ^^ { case b1 ~ b2 ~ b3 ~ b4 ~ b5 ~ b6 => f(b1, b2, b3, b4, b5, b6) }

~~~~~~(f) is equivalent to ^^ { case b1 ~ b2 ~ b3 ~ b4 ~ b5 ~ b6 => f(b1, b2, b3, b4, b5, b6) }

Definition Classes
Rule
28. #### def andThen[A](g: (Result[Out, A, X]) ⇒ A): (In) ⇒ A

Definition Classes
Function1
Annotations
@unspecialized()
29. #### def apply(in: In): Result[Out, A, X]

Definition Classes
Choice → Function1
30. #### def as(name: String): Rule[In, Out, A, X] with Name

Definition Classes
Rule
31. #### final def asInstanceOf[T0]: T0

Definition Classes
Any
32. #### def clone(): AnyRef

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( ... )
33. #### def compose[A](g: (A) ⇒ In): (A) ⇒ Result[Out, A, X]

Definition Classes
Function1
Annotations
@unspecialized()
34. #### def ensuring(cond: (Choice[In, Out, A, X]) ⇒ Boolean, msg: ⇒ Any): Choice[In, Out, A, X]

Implicit information
This member is added by an implicit conversion from Choice[In, Out, A, X] to Ensuring[Choice[In, Out, A, X]] performed by method Ensuring in scala.Predef.
Definition Classes
Ensuring
35. #### def ensuring(cond: (Choice[In, Out, A, X]) ⇒ Boolean): Choice[In, Out, A, X]

Implicit information
This member is added by an implicit conversion from Choice[In, Out, A, X] to Ensuring[Choice[In, Out, A, X]] performed by method Ensuring in scala.Predef.
Definition Classes
Ensuring
36. #### def ensuring(cond: Boolean, msg: ⇒ Any): Choice[In, Out, A, X]

Implicit information
This member is added by an implicit conversion from Choice[In, Out, A, X] to Ensuring[Choice[In, Out, A, X]] performed by method Ensuring in scala.Predef.
Definition Classes
Ensuring
37. #### def ensuring(cond: Boolean): Choice[In, Out, A, X]

Implicit information
This member is added by an implicit conversion from Choice[In, Out, A, X] to Ensuring[Choice[In, Out, A, X]] performed by method Ensuring in scala.Predef.
Definition Classes
Ensuring
38. #### final def eq(arg0: AnyRef): Boolean

Definition Classes
AnyRef
39. #### def equals(arg0: Any): Boolean

Definition Classes
AnyRef → Any
40. #### def filter(f: (A) ⇒ Boolean): Rule[In, Out, A, X]

Definition Classes
Rule
41. #### def finalize(): Unit

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( classOf[java.lang.Throwable] )
42. #### def flatMap[Out2, B, X2 >: X](fa2ruleb: (A) ⇒ (Out) ⇒ Result[Out2, B, X2]): Rule[In, Out2, B, X2]

Definition Classes
Rule
43. #### def formatted(fmtstr: String): String

Implicit information
This member is added by an implicit conversion from Choice[In, Out, A, X] to StringFormat[Choice[In, Out, A, X]] performed by method StringFormat in scala.Predef.
Definition Classes
StringFormat
Annotations
@inline()
44. #### final def getClass(): Class[_]

Definition Classes
AnyRef → Any
45. #### def hashCode(): Int

Definition Classes
AnyRef → Any
46. #### final def isInstanceOf[T0]: Boolean

Definition Classes
Any
47. #### def map[B](fa2b: (A) ⇒ B): Rule[In, Out, B, X]

Definition Classes
Rule
48. #### def mapResult[Out2, B, Y](f: (Result[Out, A, X]) ⇒ Result[Out2, B, Y]): Rule[In, Out2, B, Y]

Definition Classes
Rule
49. #### final def ne(arg0: AnyRef): Boolean

Definition Classes
AnyRef
50. #### final def notify(): Unit

Definition Classes
AnyRef
51. #### final def notifyAll(): Unit

Definition Classes
AnyRef
52. #### def orElse[In2 <: In, Out2 >: Out, A2 >: A, X2 >: X](other: ⇒ Rule[In2, Out2, A2, X2]): Rule[In2, Out2, A2, X2]

Definition Classes
ChoiceRule
53. #### def orError[In2 <: In]: Rule[In, Out, A, Any]

Definition Classes
Rule
54. #### final def synchronized[T0](arg0: ⇒ T0): T0

Definition Classes
AnyRef
55. #### def toString(): String

Definition Classes
Function1 → AnyRef → Any
56. #### final def wait(): Unit

Definition Classes
AnyRef
Annotations
@throws( ... )
57. #### final def wait(arg0: Long, arg1: Int): Unit

Definition Classes
AnyRef
Annotations
@throws( ... )
58. #### final def wait(arg0: Long): Unit

Definition Classes
AnyRef
Annotations
@throws( ... )
59. #### def |[In2 <: In, Out2 >: Out, A2 >: A, X2 >: X](other: ⇒ Rule[In2, Out2, A2, X2]): Rule[In2, Out2, A2, X2]

Definition Classes
Rule
60. #### def ~[Out2, B, X2 >: X](next: ⇒ Rule[Out, Out2, B, X2]): Rule[In, Out2, ~[A, B], X2]

Definition Classes
Rule
61. #### def ~![Out2, B, X2 >: X](next: ⇒ Rule[Out, Out2, B, X2]): Rule[In, Out2, ~[A, B], Any]

Definition Classes
Rule
62. #### def ~++[Out2, B >: A, X2 >: X](next: ⇒ Rule[Out, Out2, Seq[B], X2]): Rule[In, Out2, collection.immutable.List[B], X2]

Definition Classes
Rule
63. #### def ~-[Out2, B, X2 >: X](next: ⇒ Rule[Out, Out2, B, X2]): Rule[In, Out2, A, X2]

Definition Classes
Rule
64. #### def ~-![Out2, B, X2 >: X](next: ⇒ Rule[Out, Out2, B, X2]): Rule[In, Out2, A, Any]

Definition Classes
Rule
65. #### def ~>[Out2, B, X2 >: X](next: ⇒ Rule[Out, Out2, (A) ⇒ B, X2]): Rule[In, Out2, B, X2]

Apply the result of this rule to the function returned by the next rule

Apply the result of this rule to the function returned by the next rule

Definition Classes
Rule
66. #### def →[B](y: B): (Choice[In, Out, A, X], B)

Implicit information
This member is added by an implicit conversion from Choice[In, Out, A, X] to ArrowAssoc[Choice[In, Out, A, X]] performed by method ArrowAssoc in scala.Predef.
Definition Classes
ArrowAssoc