seany: > thank you for your patience Beside using Variant or Alebraic, some of your cases can be handled with a "alias this" plus some manual code. struct Foo1 { int x; } struct Foo2 { Foo1 f; int y; alias f this; } Bye, bearophile