-- stats.txt --
Leaks:  0
Freed:  25
Reused: 15
Allocs: 10
Retain: 1

Unifications: 15
Conjuncts:    30
Disjuncts:    26

-- in.cue --
sameValues: SmustBeF: {
	T: string | F
	F: x: T
	S: F
}

sameValues: CmustBeA: {
	A: x: [ string | A ]
	C: A
}
-- out/compile --
--- in.cue
{
  sameValues: {
    SmustBeF: {
      T: (string|〈0;F〉)
      F: {
        x: 〈1;T〉
      }
      S: 〈0;F〉
    }
  }
  sameValues: {
    CmustBeA: {
      A: {
        x: [
          (string|〈2;A〉),
        ]
      }
      C: 〈0;A〉
    }
  }
}
-- out/eval/stats --
Leaks:  0
Freed:  25
Reused: 15
Allocs: 10
Retain: 1

Unifications: 15
Conjuncts:    30
Disjuncts:    26
-- out/evalalpha --
(struct){
  sameValues: (struct){
    SmustBeF: (struct){
      T: (string){ string }
      F: (struct){
        x: (string){ string }
      }
      S: ~(sameValues.SmustBeF.F)
    }
    CmustBeA: (struct){
      A: (struct){
        x: (#list){
          0: (string){ string }
        }
      }
      C: ~(sameValues.CmustBeA.A)
    }
  }
}
-- diff/-out/evalalpha<==>+out/eval --
diff old new
--- old
+++ new
@@ -5,9 +5,7 @@
       F: (struct){
         x: (string){ string }
       }
-      S: (struct){
-        x: (string){ string }
-      }
+      S: ~(sameValues.SmustBeF.F)
     }
     CmustBeA: (struct){
       A: (struct){
@@ -15,11 +13,7 @@
           0: (string){ string }
         }
       }
-      C: (struct){
-        x: (#list){
-          0: (string){ string }
-        }
-      }
+      C: ~(sameValues.CmustBeA.A)
     }
   }
 }
-- out/eval --
(struct){
  sameValues: (struct){
    SmustBeF: (struct){
      T: (string){ string }
      F: (struct){
        x: (string){ string }
      }
      S: (struct){
        x: (string){ string }
      }
    }
    CmustBeA: (struct){
      A: (struct){
        x: (#list){
          0: (string){ string }
        }
      }
      C: (struct){
        x: (#list){
          0: (string){ string }
        }
      }
    }
  }
}
