# 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
2. by any2stringfmt
3. by any2ArrowAssoc
4. by any2Ensuring
1. Hide All
2. Show all
Visibility
1. Public
2. All

### Abstract Value Members

2. #### abstract val factory: Rules

Definition Classes
Rule

### Concrete Value Members

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

Definition Classes
AnyRef
2. #### final def !=(arg0: Any): Boolean

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

Maps an Error

Maps an Error

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

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

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

Definition Classes
Rule
7. #### 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 any2ArrowAssoc in scala.Predef.
Definition Classes
ArrowAssoc
Annotations
@inline()
8. #### def -^[B](b: B): Rule[In, Out, B, X]

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

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

Definition Classes
Rule
11. #### 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
12. #### final def ==(arg0: AnyRef): Boolean

Definition Classes
AnyRef
13. #### final def ==(arg0: Any): Boolean

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

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

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

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

Definition Classes
Rule
18. #### 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
19. #### def ??(pf: PartialFunction[A, Any]): Rule[In, Out, A, X]

Definition Classes
Rule
20. #### 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
21. #### def ^^[B](fa2b: (A) ⇒ B): Rule[In, Out, B, X]

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

Definition Classes
Rule
23. #### 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
24. #### 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
25. #### 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
26. #### 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
27. #### 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
28. #### 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
29. #### 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
30. #### def andThen[A](g: (Result[Out, A, X]) ⇒ A): (In) ⇒ A

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

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

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

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

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

Definition Classes
Function1
Annotations
@unspecialized()
36. #### 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 any2Ensuring in scala.Predef.
Definition Classes
Ensuring
37. #### 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 any2Ensuring in scala.Predef.
Definition Classes
Ensuring
38. #### 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 any2Ensuring in scala.Predef.
Definition Classes
Ensuring
39. #### 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 any2Ensuring in scala.Predef.
Definition Classes
Ensuring
40. #### final def eq(arg0: AnyRef): Boolean

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Definition Classes
Rule
67. #### 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
68. #### 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 any2ArrowAssoc in scala.Predef.
Definition Classes
ArrowAssoc

### Shadowed Implicit Value Members

1. #### val self: Any

Implicit information
This member is added by an implicit conversion from Choice[In, Out, A, X] to StringAdd performed by method any2stringadd in scala.Predef.
This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
To access this member you can use a type ascription:
Definition Classes
2. #### val self: Any

Implicit information
This member is added by an implicit conversion from Choice[In, Out, A, X] to StringFormat performed by method any2stringfmt in scala.Predef.
This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
To access this member you can use a type ascription:
(choice: StringFormat).self
Definition Classes
StringFormat

### Deprecated Value Members

1. #### def x: Choice[In, Out, A, X]

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 any2ArrowAssoc in scala.Predef.
This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
To access this member you can use a type ascription:
(choice: ArrowAssoc[Choice[In, Out, A, X]]).x
Definition Classes
ArrowAssoc
Annotations
@deprecated
Deprecated

(Since version 2.10.0) Use leftOfArrow instead

2. #### def x: 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 any2Ensuring in scala.Predef.
This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
To access this member you can use a type ascription:
(choice: Ensuring[Choice[In, Out, A, X]]).x
Definition Classes
Ensuring
Annotations
@deprecated
Deprecated

(Since version 2.10.0) Use resultOfEnsuring instead