@@ -101,7 +101,7 @@ object Test {
101101 * @tparam B the element type of the resulting stream
102102 * @return a new stream resulting from applying `f` in the `step` function of the input stream's producer.
103103 */
104- private def mapRaw [A : Type , B : Type ](f : (A => (B => Expr [Unit ]) => Expr [Unit ]), stream : StagedStream [A ]): StagedStream [B ] = {
104+ private def mapRaw [A , B ](f : (A => (B => Expr [Unit ]) => Expr [Unit ]), stream : StagedStream [A ]): StagedStream [B ] = {
105105 stream match {
106106 case Linear (producer) => {
107107 val prod = new Producer [B ] {
@@ -194,7 +194,7 @@ object Test {
194194 * @return the stream with the new producer. If the passed stream was linear, the new termination is added
195195 * otherwise the new termination is propagated to all nested ones, recursively.
196196 */
197- private def addTerminationCondition [A : Type ](condition : Expr [Boolean ] => Expr [Boolean ], stream : StagedStream [A ]): StagedStream [A ] = {
197+ private def addTerminationCondition [A ](condition : Expr [Boolean ] => Expr [Boolean ], stream : StagedStream [A ]): StagedStream [A ] = {
198198 def addToProducer [A ](f : Expr [Boolean ] => Expr [Boolean ], producer : Producer [A ]): Producer [A ] = {
199199 producer.card match {
200200 case Many =>
@@ -310,8 +310,8 @@ object Test {
310310 case (Nested (producer1, nestf1), Linear (producer2)) =>
311311 mapRaw[(B , Expr [A ]), (Expr [A ], B )]((t => k => ' { ~ k((t._2, t._1)) }), pushLinear[B , _, Expr [A ]](producer2, producer1, nestf1))
312312
313- case (Nested (producer1, nestf1), Nested (producer2, nestf2)) => ???
314- // zipRaw[A, B](Linear(makeLinear(stream1)), stream2)
313+ case (Nested (producer1, nestf1), Nested (producer2, nestf2)) =>
314+ zipRaw[A , B ](Linear (makeLinear(stream1)), stream2)
315315 }
316316 }
317317
@@ -403,7 +403,7 @@ object Test {
403403 }
404404 }
405405
406- private def pushLinear [A : Type , B , C : Type ](producer : Producer [A ], nestedProducer : Producer [B ], nestedf : (B => StagedStream [C ])): StagedStream [(A , C )] = {
406+ private def pushLinear [A , B , C ](producer : Producer [A ], nestedProducer : Producer [B ], nestedf : (B => StagedStream [C ])): StagedStream [(A , C )] = {
407407 val newProducer = new Producer [(Var [Boolean ], producer.St , B )] {
408408
409409 type St = (Var [Boolean ], producer.St , nestedProducer.St )
0 commit comments