an example exercising indexed types, implicit parameters and dependent pairs