implement derive types for list and tuple for a set of base cases