auto-determin type name