public TypeSpec Mutate (TypeSpec ts) { TypeSpec value; if (mutated_typespec.TryGetValue (ts, out value)) return value; value = ts.Mutate (this); mutated_typespec.Add (ts, value); return value; }