In some DSL a struct can be defined as something like: auto myStruct = new Struct("a:int; b:string; c:boolean"); So this looks like a simple dictionary or AA like Variant[string] myStruct. I don't see big difference in use. So D Way approach is Tuple -simple and good enough.