|
val car: Car = ... |
|
|
|
val m1 = car.toEngine |
|
// m1 : Resolve[Engine, Car] |
|
val engine1: Option[Engine] = m1.run |
|
|
|
val m2 = car.toEngine map { e => e } |
|
// m2 : FlatMapped[Engine, Engine, Unit[Engine], Resolve[Engine, Car]] |
|
val engine2: Option[Engine] = m2.run |
|
|
|
val m3 = car.toEngine flatMap { e => e.toCrankshaft } |
|
// m3 : FlatMapped[Crankshaft, Engine, Resolve[Crankshaft, Engine], Resolve[Engine, Car]] |
|
val crankshaft3: Option[Crankshaft] = m3.run |
|
|
|
val m4 = car.toEngine flatMap { e => e.toCrankshaft } map { c => c } |
|
// m4 : FlatMapped[Crankshaft, Engine, FlatMapped[Crankshaft, Crankshaft, Unit[Crankshaft], Resolve[Crankshaft, Engine]], Resolve[Engine, Car]] |
|
val crankshaft4: Option[Crankshaft] = m4.run |
|
|
|
|
|
|
|
val cars: Seq[Car] = ... |
|
|
|
val ms1 = cars map { car => car.toEngine } |
|
// ms1 : Seq[Resolve[Engine, Car]] |
|
val engines1: Seq[Engine] = ms1.run |
|
|
|
val ms2 = cars map { car => car.toEngine map { e => e } } |
|
// ms2 : Seq[FlatMapped[Engine, Engine, Unit[Engine], Resolve[Engine, Car]]] |
|
val engines2: Option[Engine] = ms2.run |
|
|
|
val ms3 = cars map { car => car.toEngine flatMap { e => e.toCrankshaft } } |
|
// ms3 : Seq[FlatMapped[Crankshaft, Engine, Resolve[Crankshaft, Engine], Resolve[Engine, Car]]] |
|
val crankshafts3: Seq[Crankshaft] = ms3.run |
|
|
|
val ms4 = cars map { car => car.toEngine flatMap { e => e.toCrankshaft } map { c => c } } |
|
// ms4 : Seq[FlatMapped[Crankshaft, Engine, FlatMapped[Crankshaft, Crankshaft, Unit[Crankshaft], Resolve[Crankshaft, Engine]], Resolve[Engine, Car]]] |
|
val crankshafts4: Seq[Crankshaft] = ms4.run |