An alternative, composable model of RoleAnnotations via type classes