Parameterize functions on an arbitrary name type