type system push