Type Generics

Written version in progress…