/// <summary>
 ///     Unregisters a factory
 /// </summary>
 public void RemoveFactory(HighLevelGpuProgramFactory factory)
 {
     this.factories.Remove(factory.Language);
 }
 /// <summary>
 ///    Add a new factory object for high-level programs of a given language.
 /// </summary>
 /// <param name="factory">
 ///    The factory instance to register.
 /// </param>
 public void AddFactory(HighLevelGpuProgramFactory factory)
 {
     this.factories.Add(factory.Language, factory);
 }