code: func runSet(set DefinitionSet) error {
  	executed := 0
  	recursed := 0
  	for executed < len(set) {
  		recursed++
  		for _, def := range set[executed:] {
  			executed++
  			if source, ok := def.(Source); ok {
  				if dsl := source.DSL(); dsl != nil {
  					Execute(dsl, source)
  				}
  			}
  		}
  		if recursed > 100 {
  			return fmt.Errorf("too many generated definitions, infinite loop?")
  		}
  	}
  	return nil
  }
docs: // runSet executes the DSL for all definitions in the given set. The definition DSLs may append to
  // the set as they execute.