generated class names contain parameter types in order to ease overloading implementation