We can't reuse the same code for data that has indirections, and data that doesn't. Example: `skip` `skipWithFieldSize` We should be able to skip a field with `skip`, whether there is a `FieldSize` or not. ## Definition of Done - [ ] Define a `Packable`, `Unpackable`, `Skippable` ADT: `WithFieldSize` - [ ] Define a `Repr` Type function in `Packable`, which gives the type of the data encoded - e.g. `type Repr (WithFieldSize a) = '[FieldSize, a] - [ ] The `skipWithFieldSize` does not exist anymore
We can't reuse the same code for data that has indirections, and data that doesn't.
Example:
skipskipWithFieldSizeWe should be able to skip a field with
skip, whether there is aFieldSizeor not.Definition of Done
Packable,Unpackable,SkippableADT:WithFieldSizeReprType function inPackable, which gives the type of the data encodedskipWithFieldSizedoes not exist anymore