 
     open func observe(index: Array.Index) -> Observable<Array.Iterator.Element?> {
         return wrappedObservable.map { array -> Array.Iterator.Element? in
-//            return array.indices.contains(index) ? array[index] : nil
-            return nil
+            return array[safe: index]
         }
     }
 

        return wrappedObservable.subscribe(observer)
    }
}

import Foundation

open class IndexableObservable<Array: Collection>: Observable<Array> where Array.Indices.Iterator.Element == Array.Index {
    open let first: Observable<Array.Iterator.Element?>
    open let last: Observable<Array.Iterator.Element?>

