Using TypeVar and typing.Generic it is possible to strongly type library objects for different numpy numeric types (float16, float32, etc.) It is currently proposed to split this task into several parts to avoid conflicts with issue #81