Instances of a class associated with a template argument can implement some important functionality. By providing different implementations for the same interface (e.g., different comparison techniques), different effects can be achived.