Add right-hand-side type parameter to structs
Add right-hand-side type parameter to structs

This is necessary for the macros to function correctly when the left
and right hand sides have different types.

bjz/approx