public ExpandedUnions? TryExpandUnions(ConfigurationRegistry configuration)
 {
     ExpandedUnions? result = null;
     var startIndex = 0;
     for (var i = 0; i < contracts.Count; i++)
     {
         var contract = contracts[i];
         var union = configuration.GetContractsUnionOrNull(contract);
         if (union == null)
         {
             if (result != null)
                 result.Value.contracts[i - startIndex] = new[] {contract};
         }
         else
         {
             if (result == null)
             {
                 startIndex = i;
                 result = new ExpandedUnions
                 {
                     contracts = new string[contracts.Count - startIndex][],
                     unionedContracts = new List<UnionedContact>(1)
                 };
             }
             result.Value.unionedContracts.Add(new UnionedContact {children = union, parent = contract});
             result.Value.contracts[i - startIndex] = union.ToArray();
         }
     }
     return result;
 }
 private string[][] TryExpandUnions(ConfigurationRegistry configuration)
 {
     string[][] result = null;
     var startIndex = 0;
     for (var i = 0; i < Contracts.Count; i++)
     {
         var contract = Contracts[i];
         var union = configuration.GetContractsUnionOrNull(contract);
         if (union == null)
         {
             if (result != null)
                 result[i - startIndex] = new[] {contract};
         }
         else
         {
             if (result == null)
             {
                 startIndex = i;
                 result = new string[Contracts.Count - startIndex][];
             }
             result[i - startIndex] = union.ToArray();
         }
     }
     return result;
 }