public static void Remove <T>
     (this CompositeSourceList <T> @this,
     T value)
 {
     @this.Source = @this.Source.Remove(value);
 }
 public static IDisposable Bind <T>
     (this ICompositeList <T> @this,
     CompositeSourceList <T> target) =>
 @this.Items.Subscribe(items => target.Source = items);
 public static void RemoveRange <T>
     (this CompositeSourceList <T> @this,
     IEnumerable <T> value)
 {
     @this.Source = @this.Source.RemoveRange(value);
 }
 public static void Clear <T>
     (this CompositeSourceList <T> @this)
 {
     @this.Source = ImmutableList <T> .Empty;
 }
 public static void InsertRangeAt <T>
     (this CompositeSourceList <T> @this,
     int i, IEnumerable <T> newValue)
 {
     @this.Source = @this.Source.InsertRange(i, newValue);
 }
 public static void InsertAt <T>
     (this CompositeSourceList <T> @this,
     int i, T newValue)
 {
     @this.Source = @this.Source.Insert(i, newValue);
 }
 public static void ReplaceAt <T>
     (this CompositeSourceList <T> @this,
     int i, T newValue)
 {
     @this.Source = @this.Source.SetItem(i, newValue);
 }
 /// <summary>
 /// Replaces the first equal element
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="this"></param>
 /// <param name="oldValue"></param>
 /// <param name="newValue"></param>
 public static void Replace <T>
     (this CompositeSourceList <T> @this,
     T oldValue, T newValue)
 {
     @this.Source = @this.Source.Replace(oldValue, newValue);
 }
 public static void Add <T>
     (this CompositeSourceList <T> @this,
     T value)
 {
     @this.Source = @this.Source.Add(value);
 }