before temporary dropping generic functions
integrate the new type checker