introduce macros for type-foldable, convert stuff to use them
introduce macros for type-foldable, convert stuff to use them

GBGamer/rust,graydon/rust,aidancully/rust,aidancully/rust,GBGamer/rust,graydon/rust,graydon/rust,graydon/rust,aidancully/rust,aidancully/rust,GBGamer/rust,GBGamer/rust,GBGamer/rust,aidancully/rust,GBGamer/rust,graydon/rust,graydon/rust,GBGamer/rust,GBGamer/rust,aidancully/rust