// After #1
model {
  // No user-defined toolchains have been added.
  // Default toolchain gcc(Gcc) has been created and responds to Intel 32 and 64 bit architectures by default
  toolChains { }
}

// After #2
model {
  // User-defined toolchain is added.
  // Default Gcc name is used (gcc) and so Intel 32 and 64 bit architectures have been added
  toolChains {
    gcc(Gcc) { }
  }
}

// After #3
model {
  // User-defined toolchain is added without default name. 
  // No longer responds to Intel 32 and 64 bit architectures by default (must be added by DSL)
  toolChains {
    otherGcc(Gcc) { }
  }
}

// After #4
model {
  // Multiple User-defined toolchains added. 
  // Only gcc(Gcc) responds to Intel 32 and 64 bit architectures (default name)
  // crossGcc(Gcc) only responds to the arm platform
  toolChains {
    gcc(Gcc) {  }
    crossGcc(Gcc) {
      target("arm") {
        // etc
      }
    }
  }
}