/// <summary>
 /// Cnstructor.
 /// wire binds two parametric types with different type argument count
 /// </summary>
 /// <param name="binding">actual binding causing the problem</param>
 /// <param name="left">left side of binding</param>
 /// <param name="right">right side of  binding</param>
 public CombinedTypeError(AdvanceBlockBind binding, AdvanceType left, AdvanceType right)
 {
     this.binding = binding;
     this.Left    = left;
     this.Right   = right;
 }
 /// <summary>
 /// Constructor.
 /// wire binds two parametric types with different type argument count
 /// </summary>
 /// <param name="binding">actual binding causing the problem</param>
 /// <param name="left">left side of binding</param>
 /// <param name="right">right side of  binding</param>
 public IncompatibleBaseTypesError(AdvanceBlockBind binding, AdvanceType left, AdvanceType right)
 {
     this.binding = binding;
     this.Left    = left;
     this.Right   = right;
 }
 /// <summary>
 /// Constructor.
 /// wire binds two parametric types with different type argument count
 /// </summary>
 /// <param name="binding">actual binding causing the problem</param>
 /// <param name="left">left side of binding</param>
 /// <param name="right">right side of  binding</param>
 public ConcreteVsParametricTypeError(AdvanceBlockBind binding, AdvanceType left, AdvanceType right)
 {
     this.binding = binding;
     this.Left    = left;
     this.Right   = right;
 }
 /// <summary>
 /// Cnstructor.
 /// wire binds two parametric types with different type argument count
 /// </summary>
 /// <param name="binding">actual binding causing the problem</param>
 /// <param name="left">left side of binding</param>
 /// <param name="right">right side of  binding</param>
 public TypeArgumentCountError(AdvanceBlockBind binding, AdvanceType left, AdvanceType right)
 {
     this.binding = binding;
     this.Left    = left;
     this.Right   = right;
 }