         return peer
     }
 
-    public func map<F>(f: E -> F,  _ context: ExecutionContext) -> ArrayView<F> {
-        let peer = ArrayCollection<F>(raw.map(f))
-        setMappingBetween2(self, peer, { $0.map { $0.map(f) } }, context)
-        return peer
-    }
-    
     public func bimap<F>(f: E -> F, _ g: F -> E) -> Stream<ArrayCollection<F>> {
         return Streams.exec(ArrayCollection<F>(raw.map(f))).flatMap { peer in
             Streams.mix([
                 Streams.pure(peer),
                 setMappingBetween2(self, peer, { $0.map { $0.map(f) } }),
                 setMappingBetween2(peer, self, { $0.map { $0.map(g) } }),
-            ])
-        }
-    }
-
-    override public func map<F>(f: E -> F) -> Stream<ArrayView<F>> {
-        return Streams.exec(ArrayCollection<F>(raw.map(f))).flatMap { peer in
-            Streams.mix([
-                Streams.pure(peer),
-                setMappingBetween2(self, peer, { $0.map { $0.map(f) } })
             ])
         }
     }

        }
    }

    public func bimap<F>(f: E -> F, _ g: F -> E, _ context: ExecutionContext) -> ArrayCollection<F> {
        let peer = ArrayCollection<F>(raw.map(f))
        setMappingBetween2(self, peer, { $0.map { $0.map(f) } }, context)

    
    public func map<F>(f: E -> F) -> Stream<ArrayView<F>> {
        return Streams.pure(ArrayView<F>())
    }

    public func map<F>(f: E -> F, _ context: ExecutionContext) -> ArrayView<F> {
        return ArrayView<F>()
    }

    // TODO Swift compiler does'nt support overriding getter/setter yet
