Using Haskell's 'Newtype' in C
2 days ago
- #type-safety
- #C-programming
- #software-engineering
- Problem of handling multiple data types with the same representation in software engineering.
- Traditional solutions rely on conventions like Hungarian Notation.
- Using singleton structs in C to mimic Haskell's newtype for type safety.
- Example from JOS, a toy OS, showing macros for converting between physical and virtual addresses.
- Performance impact of using singleton structs is minimal, with identical representation to bare types.
- Linux kernel uses similar struct-based type-checking for x86 page table entries.
- Recommendation to use this trick for subtle C code dealing with multiple types of the same representation.