Derive all ADTs from Read type class to use `read` and `reads`