Enriched DSL with signal_struct. Not tested.