for the user, you should describe the template parameters and associated concepts..