IFunction and IObservable are generics now