public static IEnumerable<Operation> ResolveOperationReferences(IEnumerable<DataType> types,
     IEnumerable<Operation> operations)
 {
     var resolver = new TypeReferenceResolver(types);
     return resolver.FixUpOperations(operations);
 } 
 /// <summary>
 /// Go through the provided set of types,
 /// and replace any type references with
 /// corresponding DataType objects. Returns
 /// a new set of fixed-up DataType objects.
 /// </summary>
 /// <param name="types">The data types to fix up, treated as a set.</param>
 /// <returns>The new resolved types, not necessarily in the same order.</returns>
 public static IEnumerable<DataType> ResolveTypeReferences(IEnumerable<DataType> types)
 {
     var resolver = new TypeReferenceResolver(types);
     return resolver.FixUpTypes();
 }