cuelang.org/go@v0.13.0/cue/testdata/eval/v0.7.txtar (about)

     1  # Some new cases specific to v0.7
     2  
     3  -- builtins.cue --
     4  import "strings"
     5  
     6  mutualBuiltin: t1: ok: {
     7  	// Results in incomplete error in v0.6
     8  	s3: strings.ContainsAny(s4)
     9  	s4: strings.ContainsAny(s3)
    10  	s4: "dd"
    11  }
    12  
    13  mutualBuiltin: t2: ok: {
    14  	s3: strings.ContainsAny(s5, "dd")
    15  	s5: s6
    16  	s6: "dd"
    17  }
    18  
    19  -- comprehensions.cue --
    20  comprehensions: t1: ok: {
    21  	src: ["foo"]
    22  	for v in src { "\(v)": v }
    23  }
    24  
    25  -- dynamic.cue --
    26  dynamic: t1: ok: {
    27  	[X=string]: {name: X}
    28  	(x.y): {}
    29  	x: y: "foo"
    30  }
    31  
    32  dynamic: t2: ok: {
    33  	foo: #X
    34  	#X: {
    35  		a: b: C: 1
    36  		for _ in a {
    37  			a: ("b"): D: 2
    38  		}
    39  	}
    40  }
    41  
    42  -- definition.cue --
    43  definition: t0: err: {
    44  	#D1: env: {}
    45  	d1: env: c: "C"
    46  	d1: #D1
    47  }
    48  
    49  definition: t1: err: {
    50  	a: #A
    51  	a: c: 1
    52  	// defining after first reference triggers notification mechanism to kick in.
    53  	#A: {}
    54  }
    55  
    56  definition: t2: ok: p1: {
    57  	#A: {
    58  		...
    59  		{a: int}
    60  	}
    61  	x: #A & { c: int }
    62  }
    63  
    64  definition: t2: ok: p2: {
    65  	#A: {
    66  		{a: int}
    67  		...
    68  	}
    69  	x: #A & { c: int }
    70  }
    71  
    72  definition: t2: ok: p3: {
    73  	x: #A & { c: int }
    74  	#A: {
    75  		...
    76  		{a: int}
    77  	}
    78  }
    79  
    80  definition: t2: ok: p4: {
    81  	x: #A & { c: int }
    82  	#A: {
    83  		{a: int}
    84  		...
    85  	}
    86  }
    87  
    88  -- expr.cue --
    89  expr: t1: ok: {
    90  	a: X
    91  	X: 5.0
    92  	X: Y / 2
    93  	Y: a * 2
    94  }
    95  
    96  expr: t2: ok: {
    97  	A: X + 2
    98  	X: 5
    99  	X: A - 2
   100  }
   101  
   102  expr: t3: ok: p1: {
   103  	a0: X
   104  	X:  5.0
   105  	X:  a0 * 1
   106  }
   107  
   108  expr: t3: ok: p2: {
   109  	b: Y * 1
   110  	Y: b * 1
   111  	Y: 5.0
   112  }
   113  
   114  expr: t4: ok: {
   115  	// -> a0 -> X -> b1 -> b0 -> a1 -> a0
   116  	a0: X // Need all conjuncts known from X
   117  	b0: a1
   118  	a1: a0 + 2
   119  	b1: b0 - 2
   120  	a0: X
   121  	X:  b1
   122  	X:  5.0
   123  }
   124  
   125  -- in.cue --
   126  mutual: t0: ok: {
   127  	c: e & {b: 2}
   128  	e: {a: 1}
   129  	e: c
   130  }
   131  
   132  mutual: t1: ok: {
   133  	a: {
   134  		b
   135  		b: {b: f: 1}
   136  	}
   137  	a: a.b
   138  	a: b: {b: f: 1}
   139  }
   140  
   141  mutual: t2: ok: {
   142  	x: a: a: f: 1
   143  	x: y.a
   144  	y: a: a: e: 1
   145  	y: x.a
   146  }
   147  
   148  mutual: t3: ok: {
   149  	d: e: f: 1
   150  	d
   151  	d: d: e: g: 1
   152  }
   153  
   154  // This test fails for some permutations in v0.6.
   155  mutual: t4: ok: {
   156  	p0: {
   157  		z: x.b
   158  		x: b: y.c
   159  		x: b: {d: b: 2}
   160  		y: c: z.d
   161  		z: d: {a: 1}
   162  	}
   163  
   164  	p1: {
   165  		x: b: y.c
   166  		z: x.b
   167  		x: b: {d: b: 2}
   168  		y: c: z.d
   169  		z: d: {a: 1}
   170  	}
   171  
   172  	p2: {
   173  		x: b: y.c
   174  		x: b: {d: b: 2}
   175  		y: c: z.d
   176  		z: x.b
   177  		z: d: {a: 1}
   178  	}
   179  
   180  	p3: {
   181  		x: b: {d: b: 2}
   182  		y: c: z.d
   183  		z: x.b
   184  		x: b: y.c
   185  		z: d: {a: 1}
   186  	}
   187  
   188  	p4: {
   189  		z: x.b
   190  		x: b: {d: b: 2}
   191  		y: c: z.d
   192  		x: b: y.c
   193  		z: d: {a: 1}
   194  	}
   195  
   196  	p5: {
   197  		x: b: {d: b: 2}
   198  		y: c: z.d
   199  		x: b: y.c
   200  		z: x.b
   201  		z: d: {a: 1}
   202  	}
   203  
   204  	check: p1 & p2 & p3 & p4 & p5
   205  }
   206  
   207  -- equality.cue --
   208  issue3194: reduced: {
   209  	A: *0 | >10
   210  	A: *0 | >10
   211  	{
   212  		out: close({ b: A })
   213  		out: b: A
   214  	}.out
   215  }
   216  
   217  -- chained.cue --
   218  import "encoding/yaml"
   219  
   220  issue3925: reduced: {
   221  	out: yaml.Marshal(in.b.actual)
   222  	in: {
   223  		a: "actual"
   224  		a: "actual" | "other"
   225  		b: (a): c: "str"
   226  	}
   227  }
   228  issue3925: full: {
   229  	for name, _ in _inputs {
   230  		out: (name): early: "early value"
   231  	}
   232  	_inputs: input1: {
   233  		name: "actual"
   234  		config: (name): one: "one value"
   235  	}
   236  	_inputs: [_]: {
   237  		name: "actual" | "other"
   238  	}
   239  	for name, input in _inputs {
   240  		out: (name): lateYAML: yaml.Marshal(input.config[input.name])
   241  	}
   242  }
   243  -- out/eval/stats --
   244  Leaks:  4
   245  Freed:  308
   246  Reused: 296
   247  Allocs: 16
   248  Retain: 183
   249  
   250  Unifications: 288
   251  Conjuncts:    1650
   252  Disjuncts:    472
   253  -- out/eval --
   254  Errors:
   255  definition.t0.err.d1.env.c: field not allowed:
   256      ./definition.cue:2:12
   257      ./definition.cue:3:11
   258      ./definition.cue:4:6
   259  definition.t1.err.a.c: field not allowed:
   260      ./definition.cue:8:5
   261      ./definition.cue:9:5
   262      ./definition.cue:11:6
   263  mutual.t4.ok.p0.z: cannot add to field b
   264  mutual.t4.ok.p0.z: cannot add to field c
   265  mutual.t4.ok.p4.z: cannot add to field b
   266  mutual.t4.ok.p4.z: cannot add to field c
   267  
   268  Result:
   269  (_|_){
   270    // [eval]
   271    mutualBuiltin: (struct){
   272      t1: (struct){
   273        ok: (struct){
   274          s3: (string){ strings.ContainsAny("dd") }
   275          s4: (_|_){
   276            // [incomplete] mutualBuiltin.t1.ok.s4: invalid value "dd" (does not satisfy strings.ContainsAny(strings.ContainsAny("dd"))): error in call to strings.ContainsAny: non-concrete value string:
   277            //     ./builtins.cue:6:6
   278            //     ./builtins.cue:5:6
   279            //     ./builtins.cue:7:6
   280          }
   281        }
   282      }
   283      t2: (struct){
   284        ok: (struct){
   285          s3: (bool){ true }
   286          s5: (string){ "dd" }
   287          s6: (string){ "dd" }
   288        }
   289      }
   290    }
   291    issue3925: (struct){
   292      reduced: (struct){
   293        out: (string){ "c: str\n" }
   294        in: (struct){
   295          a: (string){ "actual" }
   296          b: (struct){
   297            actual: (struct){
   298              c: (string){ "str" }
   299            }
   300          }
   301        }
   302      }
   303      full: (struct){
   304        out: (struct){
   305          input1: (struct){
   306            early: (string){ "early value" }
   307            lateYAML: (string){ "one: one value\n" }
   308          }
   309        }
   310        _inputs: (struct){
   311          input1: (struct){
   312            name: (string){ "actual" }
   313            config: (struct){
   314              actual: (struct){
   315                one: (string){ "one value" }
   316              }
   317            }
   318          }
   319        }
   320      }
   321    }
   322    comprehensions: (struct){
   323      t1: (struct){
   324        ok: (struct){
   325          src: (#list){
   326            0: (string){ "foo" }
   327          }
   328          foo: (string){ "foo" }
   329        }
   330      }
   331    }
   332    definition: (_|_){
   333      // [eval]
   334      t0: (_|_){
   335        // [eval]
   336        err: (_|_){
   337          // [eval]
   338          #D1: (#struct){
   339            env: (#struct){
   340            }
   341          }
   342          d1: (_|_){
   343            // [eval]
   344            env: (_|_){
   345              // [eval]
   346              c: (_|_){
   347                // [eval] definition.t0.err.d1.env.c: field not allowed:
   348                //     ./definition.cue:2:12
   349                //     ./definition.cue:3:11
   350                //     ./definition.cue:4:6
   351              }
   352            }
   353          }
   354        }
   355      }
   356      t1: (_|_){
   357        // [eval]
   358        err: (_|_){
   359          // [eval]
   360          a: (_|_){
   361            // [eval]
   362            c: (_|_){
   363              // [eval] definition.t1.err.a.c: field not allowed:
   364              //     ./definition.cue:8:5
   365              //     ./definition.cue:9:5
   366              //     ./definition.cue:11:6
   367            }
   368          }
   369          #A: (#struct){
   370          }
   371        }
   372      }
   373      t2: (struct){
   374        ok: (struct){
   375          p1: (struct){
   376            #A: (#struct){
   377              a: (int){ int }
   378            }
   379            x: (#struct){
   380              a: (int){ int }
   381              c: (int){ int }
   382            }
   383          }
   384          p2: (struct){
   385            #A: (#struct){
   386              a: (int){ int }
   387            }
   388            x: (#struct){
   389              a: (int){ int }
   390              c: (int){ int }
   391            }
   392          }
   393          p3: (struct){
   394            x: (#struct){
   395              a: (int){ int }
   396              c: (int){ int }
   397            }
   398            #A: (#struct){
   399              a: (int){ int }
   400            }
   401          }
   402          p4: (struct){
   403            x: (#struct){
   404              a: (int){ int }
   405              c: (int){ int }
   406            }
   407            #A: (#struct){
   408              a: (int){ int }
   409            }
   410          }
   411        }
   412      }
   413    }
   414    dynamic: (struct){
   415      t1: (struct){
   416        ok: (struct){
   417          x: (struct){
   418            y: (string){ "foo" }
   419            name: (string){ "x" }
   420          }
   421          foo: (struct){
   422            name: (string){ "foo" }
   423          }
   424        }
   425      }
   426      t2: (struct){
   427        ok: (struct){
   428          foo: (#struct){
   429            a: (#struct){
   430              b: (#struct){
   431                C: (int){ 1 }
   432                D: (int){ 2 }
   433              }
   434            }
   435          }
   436          #X: (#struct){
   437            a: (#struct){
   438              b: (#struct){
   439                C: (int){ 1 }
   440                D: (int){ 2 }
   441              }
   442            }
   443          }
   444        }
   445      }
   446    }
   447    issue3194: (struct){
   448      reduced: (#struct){
   449        A: (number){ |(*(int){ 0 }, (number){ >10 }) }
   450        b: (number){ |(*(int){ 0 }, (number){ >10 }) }
   451      }
   452    }
   453    expr: (struct){
   454      t1: (struct){
   455        ok: (struct){
   456          a: (float){ 5.0 }
   457          X: (float){ 5.0 }
   458          Y: (float){ 10.0 }
   459        }
   460      }
   461      t2: (struct){
   462        ok: (struct){
   463          A: (int){ 7 }
   464          X: (int){ 5 }
   465        }
   466      }
   467      t3: (struct){
   468        ok: (struct){
   469          p1: (struct){
   470            a0: (float){ 5.0 }
   471            X: (float){ 5.0 }
   472          }
   473          p2: (struct){
   474            b: (float){ 5.0 }
   475            Y: (float){ 5.0 }
   476          }
   477        }
   478      }
   479      t4: (struct){
   480        ok: (struct){
   481          a0: (float){ 5.0 }
   482          b0: (float){ 7.0 }
   483          a1: (float){ 7.0 }
   484          b1: (float){ 5.0 }
   485          X: (float){ 5.0 }
   486        }
   487      }
   488    }
   489    mutual: (_|_){
   490      // [eval]
   491      t0: (struct){
   492        ok: (struct){
   493          c: (struct){
   494            b: (int){ 2 }
   495            a: (int){ 1 }
   496          }
   497          e: (struct){
   498            a: (int){ 1 }
   499            b: (int){ 2 }
   500          }
   501        }
   502      }
   503      t1: (struct){
   504        ok: (struct){
   505          a: (struct){
   506            b: (struct){
   507              b: (struct){
   508                f: (int){ 1 }
   509              }
   510              f: (int){ 1 }
   511            }
   512            f: (int){ 1 }
   513          }
   514        }
   515      }
   516      t2: (struct){
   517        ok: (struct){
   518          x: (struct){
   519            a: (struct){
   520              a: (struct){
   521                f: (int){ 1 }
   522              }
   523              e: (int){ 1 }
   524            }
   525            f: (int){ 1 }
   526          }
   527          y: (struct){
   528            a: (struct){
   529              a: (struct){
   530                e: (int){ 1 }
   531              }
   532              f: (int){ 1 }
   533            }
   534            e: (int){ 1 }
   535          }
   536        }
   537      }
   538      t3: (struct){
   539        ok: (struct){
   540          d: (struct){
   541            e: (struct){
   542              f: (int){ 1 }
   543              g: (int){ 1 }
   544            }
   545            d: (struct){
   546              e: (struct){
   547                g: (int){ 1 }
   548              }
   549            }
   550          }
   551          e: (struct){
   552            f: (int){ 1 }
   553            g: (int){ 1 }
   554          }
   555        }
   556      }
   557      t4: (_|_){
   558        // [eval]
   559        ok: (_|_){
   560          // [eval]
   561          p0: (_|_){
   562            // [eval]
   563            z: (_|_){
   564              // [eval] mutual.t4.ok.p0.z: cannot add to field b
   565              // mutual.t4.ok.p0.z: cannot add to field c
   566              d: (struct){
   567                a: (int){ 1 }
   568                b: (int){ 2 }
   569              }
   570              a: (int){ 1 }
   571              b: (int){ 2 }
   572            }
   573            x: (struct){
   574              b: (struct){
   575                a: (int){ 1 }
   576                d: (struct){
   577                  b: (int){ 2 }
   578                }
   579              }
   580            }
   581            y: (struct){
   582              c: (struct){
   583                a: (int){ 1 }
   584              }
   585            }
   586          }
   587          p1: (struct){
   588            x: (struct){
   589              b: (struct){
   590                d: (struct){
   591                  b: (int){ 2 }
   592                }
   593                a: (int){ 1 }
   594                b: (int){ 2 }
   595              }
   596            }
   597            z: (struct){
   598              d: (struct){
   599                a: (int){ 1 }
   600                b: (int){ 2 }
   601              }
   602              a: (int){ 1 }
   603              b: (int){ 2 }
   604            }
   605            y: (struct){
   606              c: (struct){
   607                a: (int){ 1 }
   608                b: (int){ 2 }
   609              }
   610            }
   611          }
   612          p2: (struct){
   613            x: (struct){
   614              b: (struct){
   615                d: (struct){
   616                  b: (int){ 2 }
   617                }
   618                a: (int){ 1 }
   619                b: (int){ 2 }
   620              }
   621            }
   622            y: (struct){
   623              c: (struct){
   624                a: (int){ 1 }
   625                b: (int){ 2 }
   626              }
   627            }
   628            z: (struct){
   629              d: (struct){
   630                a: (int){ 1 }
   631                b: (int){ 2 }
   632              }
   633              a: (int){ 1 }
   634              b: (int){ 2 }
   635            }
   636          }
   637          p3: (struct){
   638            x: (struct){
   639              b: (struct){
   640                d: (struct){
   641                  b: (int){ 2 }
   642                }
   643                b: (int){ 2 }
   644                a: (int){ 1 }
   645              }
   646            }
   647            y: (struct){
   648              c: (struct){
   649                b: (int){ 2 }
   650                a: (int){ 1 }
   651              }
   652            }
   653            z: (struct){
   654              d: (struct){
   655                b: (int){ 2 }
   656                a: (int){ 1 }
   657              }
   658              b: (int){ 2 }
   659              a: (int){ 1 }
   660            }
   661          }
   662          p4: (_|_){
   663            // [eval]
   664            z: (_|_){
   665              // [eval] mutual.t4.ok.p4.z: cannot add to field b
   666              // mutual.t4.ok.p4.z: cannot add to field c
   667              d: (struct){
   668                a: (int){ 1 }
   669                b: (int){ 2 }
   670              }
   671              a: (int){ 1 }
   672              b: (int){ 2 }
   673            }
   674            x: (struct){
   675              b: (struct){
   676                d: (struct){
   677                  b: (int){ 2 }
   678                }
   679                a: (int){ 1 }
   680              }
   681            }
   682            y: (struct){
   683              c: (struct){
   684                a: (int){ 1 }
   685              }
   686            }
   687          }
   688          p5: (struct){
   689            x: (struct){
   690              b: (struct){
   691                d: (struct){
   692                  b: (int){ 2 }
   693                }
   694                b: (int){ 2 }
   695                a: (int){ 1 }
   696              }
   697            }
   698            y: (struct){
   699              c: (struct){
   700                b: (int){ 2 }
   701                a: (int){ 1 }
   702              }
   703            }
   704            z: (struct){
   705              d: (struct){
   706                b: (int){ 2 }
   707                a: (int){ 1 }
   708              }
   709              b: (int){ 2 }
   710              a: (int){ 1 }
   711            }
   712          }
   713          check: (struct){
   714            x: (struct){
   715              b: (struct){
   716                d: (struct){
   717                  b: (int){ 2 }
   718                }
   719                a: (int){ 1 }
   720                b: (int){ 2 }
   721              }
   722            }
   723            z: (struct){
   724              d: (struct){
   725                a: (int){ 1 }
   726                b: (int){ 2 }
   727              }
   728              a: (int){ 1 }
   729              b: (int){ 2 }
   730            }
   731            y: (struct){
   732              c: (struct){
   733                a: (int){ 1 }
   734                b: (int){ 2 }
   735              }
   736            }
   737          }
   738        }
   739      }
   740    }
   741  }
   742  -- out/evalalpha/stats --
   743  Leaks:  292
   744  Freed:  0
   745  Reused: 0
   746  Allocs: 292
   747  Retain: 0
   748  
   749  Unifications: 277
   750  Conjuncts:    605
   751  Disjuncts:    12
   752  
   753  CloseIDElems: 38
   754  NumCloseIDs: 83
   755  -- out/evalalpha --
   756  Errors:
   757  definition.t0.err.d1.env.c: field not allowed:
   758      ./definition.cue:3:11
   759  definition.t1.err.a.c: field not allowed:
   760      ./definition.cue:9:5
   761  
   762  Result:
   763  (_|_){
   764    // [eval]
   765    mutualBuiltin: (struct){
   766      t1: (struct){
   767        ok: (struct){
   768          s3: (string){ strings.ContainsAny("dd") }
   769          s4: (string){ "dd" }
   770        }
   771      }
   772      t2: (struct){
   773        ok: (struct){
   774          s3: (bool){ true }
   775          s5: (string){ "dd" }
   776          s6: (string){ "dd" }
   777        }
   778      }
   779    }
   780    issue3925: (struct){
   781      reduced: (struct){
   782        out: (string){ "c: str\n" }
   783        in: (struct){
   784          a: (string){ "actual" }
   785          b: (struct){
   786            actual: (struct){
   787              c: (string){ "str" }
   788            }
   789          }
   790        }
   791      }
   792      full: (struct){
   793        out: (struct){
   794          input1: (struct){
   795            early: (string){ "early value" }
   796            lateYAML: (string){ "one: one value\n" }
   797          }
   798        }
   799        _inputs: (struct){
   800          input1: (struct){
   801            name: (string){ "actual" }
   802            config: (struct){
   803              actual: (struct){
   804                one: (string){ "one value" }
   805              }
   806            }
   807          }
   808        }
   809      }
   810    }
   811    comprehensions: (struct){
   812      t1: (struct){
   813        ok: (struct){
   814          src: (#list){
   815            0: (string){ "foo" }
   816          }
   817          foo: (string){ "foo" }
   818        }
   819      }
   820    }
   821    definition: (_|_){
   822      // [eval]
   823      t0: (_|_){
   824        // [eval]
   825        err: (_|_){
   826          // [eval]
   827          #D1: (#struct){
   828            env: (#struct){
   829            }
   830          }
   831          d1: (_|_){
   832            // [eval]
   833            env: (_|_){
   834              // [eval]
   835              c: (_|_){
   836                // [eval] definition.t0.err.d1.env.c: field not allowed:
   837                //     ./definition.cue:3:11
   838              }
   839            }
   840          }
   841        }
   842      }
   843      t1: (_|_){
   844        // [eval]
   845        err: (_|_){
   846          // [eval]
   847          a: (_|_){
   848            // [eval]
   849            c: (_|_){
   850              // [eval] definition.t1.err.a.c: field not allowed:
   851              //     ./definition.cue:9:5
   852            }
   853          }
   854          #A: (#struct){
   855          }
   856        }
   857      }
   858      t2: (struct){
   859        ok: (struct){
   860          p1: (struct){
   861            #A: (#struct){
   862              a: (int){ int }
   863            }
   864            x: (#struct){
   865              c: (int){ int }
   866              a: (int){ int }
   867            }
   868          }
   869          p2: (struct){
   870            #A: (#struct){
   871              a: (int){ int }
   872            }
   873            x: (#struct){
   874              c: (int){ int }
   875              a: (int){ int }
   876            }
   877          }
   878          p3: (struct){
   879            x: (#struct){
   880              c: (int){ int }
   881              a: (int){ int }
   882            }
   883            #A: (#struct){
   884              a: (int){ int }
   885            }
   886          }
   887          p4: (struct){
   888            x: (#struct){
   889              c: (int){ int }
   890              a: (int){ int }
   891            }
   892            #A: (#struct){
   893              a: (int){ int }
   894            }
   895          }
   896        }
   897      }
   898    }
   899    dynamic: (struct){
   900      t1: (struct){
   901        ok: (struct){
   902          x: (struct){
   903            y: (string){ "foo" }
   904            name: (string){ "x" }
   905          }
   906          foo: (struct){
   907            name: (string){ "foo" }
   908          }
   909        }
   910      }
   911      t2: (struct){
   912        ok: (struct){
   913          foo: ~(dynamic.t2.ok.#X)
   914          #X: (#struct){
   915            a: (#struct){
   916              b: (#struct){
   917                C: (int){ 1 }
   918                D: (int){ 2 }
   919              }
   920            }
   921          }
   922        }
   923      }
   924    }
   925    issue3194: (struct){
   926      reduced: (#struct){
   927        A: (number){ |(*(int){ 0 }, (number){ >10 }) }
   928        b: (number){ |(*(int){ 0 }, (number){ >10 }) }
   929      }
   930    }
   931    expr: (struct){
   932      t1: (struct){
   933        ok: (struct){
   934          a: (float){ 5.0 }
   935          X: (float){ 5.0 }
   936          Y: (float){ 10.0 }
   937        }
   938      }
   939      t2: (struct){
   940        ok: (struct){
   941          A: (int){ 7 }
   942          X: (int){ 5 }
   943        }
   944      }
   945      t3: (struct){
   946        ok: (struct){
   947          p1: (struct){
   948            a0: (float){ 5.0 }
   949            X: (float){ 5.0 }
   950          }
   951          p2: (struct){
   952            b: (float){ 5.0 }
   953            Y: (float){ 5.0 }
   954          }
   955        }
   956      }
   957      t4: (struct){
   958        ok: (struct){
   959          a0: (float){ 5.0 }
   960          b0: (float){ 7.0 }
   961          a1: (float){ 7.0 }
   962          b1: (float){ 5.0 }
   963          X: (float){ 5.0 }
   964        }
   965      }
   966    }
   967    mutual: (struct){
   968      t0: (struct){
   969        ok: (struct){
   970          c: (struct){
   971            b: (int){ 2 }
   972            a: (int){ 1 }
   973          }
   974          e: (struct){
   975            a: (int){ 1 }
   976            b: (int){ 2 }
   977          }
   978        }
   979      }
   980      t1: (struct){
   981        ok: (struct){
   982          a: (struct){
   983            b: (struct){
   984              b: (struct){
   985                f: (int){ 1 }
   986              }
   987              f: (int){ 1 }
   988            }
   989            f: (int){ 1 }
   990          }
   991        }
   992      }
   993      t2: (struct){
   994        ok: (struct){
   995          x: (struct){
   996            a: (struct){
   997              a: (struct){
   998                f: (int){ 1 }
   999              }
  1000              e: (int){ 1 }
  1001            }
  1002            f: (int){ 1 }
  1003          }
  1004          y: (struct){
  1005            a: (struct){
  1006              a: (struct){
  1007                e: (int){ 1 }
  1008              }
  1009              f: (int){ 1 }
  1010            }
  1011            e: (int){ 1 }
  1012          }
  1013        }
  1014      }
  1015      t3: (struct){
  1016        ok: (struct){
  1017          d: (struct){
  1018            e: (struct){
  1019              f: (int){ 1 }
  1020              g: (int){ 1 }
  1021            }
  1022            d: (struct){
  1023              e: (struct){
  1024                g: (int){ 1 }
  1025              }
  1026            }
  1027          }
  1028          e: (struct){
  1029            f: (int){ 1 }
  1030            g: (int){ 1 }
  1031          }
  1032        }
  1033      }
  1034      t4: (struct){
  1035        ok: (struct){
  1036          p0: (struct){
  1037            z: (struct){
  1038              d: (struct){
  1039                a: (int){ 1 }
  1040                b: (int){ 2 }
  1041              }
  1042              a: (int){ 1 }
  1043              b: (int){ 2 }
  1044            }
  1045            x: (struct){
  1046              b: (struct){
  1047                d: (struct){
  1048                  b: (int){ 2 }
  1049                }
  1050                a: (int){ 1 }
  1051                b: (int){ 2 }
  1052              }
  1053            }
  1054            y: (struct){
  1055              c: ~(mutual.t4.ok.p0.z.d)
  1056            }
  1057          }
  1058          p1: (struct){
  1059            x: (struct){
  1060              b: (struct){
  1061                d: (struct){
  1062                  b: (int){ 2 }
  1063                }
  1064                a: (int){ 1 }
  1065                b: (int){ 2 }
  1066              }
  1067            }
  1068            z: (struct){
  1069              d: (struct){
  1070                a: (int){ 1 }
  1071                b: (int){ 2 }
  1072              }
  1073              a: (int){ 1 }
  1074              b: (int){ 2 }
  1075            }
  1076            y: (struct){
  1077              c: ~(mutual.t4.ok.p1.z.d)
  1078            }
  1079          }
  1080          p2: (struct){
  1081            x: (struct){
  1082              b: (struct){
  1083                d: (struct){
  1084                  b: (int){ 2 }
  1085                }
  1086                a: (int){ 1 }
  1087                b: (int){ 2 }
  1088              }
  1089            }
  1090            y: (struct){
  1091              c: ~(mutual.t4.ok.p2.z.d)
  1092            }
  1093            z: (struct){
  1094              d: (struct){
  1095                a: (int){ 1 }
  1096                b: (int){ 2 }
  1097              }
  1098              a: (int){ 1 }
  1099              b: (int){ 2 }
  1100            }
  1101          }
  1102          p3: (struct){
  1103            x: (struct){
  1104              b: (struct){
  1105                d: (struct){
  1106                  b: (int){ 2 }
  1107                }
  1108                a: (int){ 1 }
  1109                b: (int){ 2 }
  1110              }
  1111            }
  1112            y: (struct){
  1113              c: ~(mutual.t4.ok.p3.z.d)
  1114            }
  1115            z: (struct){
  1116              d: (struct){
  1117                a: (int){ 1 }
  1118                b: (int){ 2 }
  1119              }
  1120              a: (int){ 1 }
  1121              b: (int){ 2 }
  1122            }
  1123          }
  1124          p4: (struct){
  1125            z: (struct){
  1126              d: (struct){
  1127                a: (int){ 1 }
  1128                b: (int){ 2 }
  1129              }
  1130              a: (int){ 1 }
  1131              b: (int){ 2 }
  1132            }
  1133            x: (struct){
  1134              b: (struct){
  1135                d: (struct){
  1136                  b: (int){ 2 }
  1137                }
  1138                a: (int){ 1 }
  1139                b: (int){ 2 }
  1140              }
  1141            }
  1142            y: (struct){
  1143              c: ~(mutual.t4.ok.p4.z.d)
  1144            }
  1145          }
  1146          p5: (struct){
  1147            x: (struct){
  1148              b: (struct){
  1149                d: (struct){
  1150                  b: (int){ 2 }
  1151                }
  1152                a: (int){ 1 }
  1153                b: (int){ 2 }
  1154              }
  1155            }
  1156            y: (struct){
  1157              c: ~(mutual.t4.ok.p5.z.d)
  1158            }
  1159            z: (struct){
  1160              d: (struct){
  1161                a: (int){ 1 }
  1162                b: (int){ 2 }
  1163              }
  1164              a: (int){ 1 }
  1165              b: (int){ 2 }
  1166            }
  1167          }
  1168          check: (struct){
  1169            x: (struct){
  1170              b: (struct){
  1171                d: (struct){
  1172                  b: (int){ 2 }
  1173                }
  1174                a: (int){ 1 }
  1175                b: (int){ 2 }
  1176              }
  1177            }
  1178            z: (struct){
  1179              d: (struct){
  1180                a: (int){ 1 }
  1181                b: (int){ 2 }
  1182              }
  1183              a: (int){ 1 }
  1184              b: (int){ 2 }
  1185            }
  1186            y: (struct){
  1187              c: ~(mutual.t4.ok.check.z.d)
  1188            }
  1189          }
  1190        }
  1191      }
  1192    }
  1193  }
  1194  -- diff/-out/evalalpha/stats<==>+out/eval/stats --
  1195  diff old new
  1196  --- old
  1197  +++ new
  1198  @@ -1,9 +1,12 @@
  1199  -Leaks:  4
  1200  -Freed:  308
  1201  -Reused: 296
  1202  -Allocs: 16
  1203  -Retain: 183
  1204  -
  1205  -Unifications: 288
  1206  -Conjuncts:    1650
  1207  -Disjuncts:    472
  1208  +Leaks:  292
  1209  +Freed:  0
  1210  +Reused: 0
  1211  +Allocs: 292
  1212  +Retain: 0
  1213  +
  1214  +Unifications: 277
  1215  +Conjuncts:    605
  1216  +Disjuncts:    12
  1217  +
  1218  +CloseIDElems: 38
  1219  +NumCloseIDs: 83
  1220  -- diff/-out/evalalpha<==>+out/eval --
  1221  diff old new
  1222  --- old
  1223  +++ new
  1224  @@ -1,16 +1,8 @@
  1225   Errors:
  1226   definition.t0.err.d1.env.c: field not allowed:
  1227  -    ./definition.cue:2:12
  1228       ./definition.cue:3:11
  1229  -    ./definition.cue:4:6
  1230   definition.t1.err.a.c: field not allowed:
  1231  -    ./definition.cue:8:5
  1232       ./definition.cue:9:5
  1233  -    ./definition.cue:11:6
  1234  -mutual.t4.ok.p0.z: cannot add to field b
  1235  -mutual.t4.ok.p0.z: cannot add to field c
  1236  -mutual.t4.ok.p4.z: cannot add to field b
  1237  -mutual.t4.ok.p4.z: cannot add to field c
  1238   
  1239   Result:
  1240   (_|_){
  1241  @@ -19,12 +11,7 @@
  1242       t1: (struct){
  1243         ok: (struct){
  1244           s3: (string){ strings.ContainsAny("dd") }
  1245  -        s4: (_|_){
  1246  -          // [incomplete] mutualBuiltin.t1.ok.s4: invalid value "dd" (does not satisfy strings.ContainsAny(strings.ContainsAny("dd"))): error in call to strings.ContainsAny: non-concrete value string:
  1247  -          //     ./builtins.cue:6:6
  1248  -          //     ./builtins.cue:5:6
  1249  -          //     ./builtins.cue:7:6
  1250  -        }
  1251  +        s4: (string){ "dd" }
  1252         }
  1253       }
  1254       t2: (struct){
  1255  @@ -92,9 +79,7 @@
  1256               // [eval]
  1257               c: (_|_){
  1258                 // [eval] definition.t0.err.d1.env.c: field not allowed:
  1259  -              //     ./definition.cue:2:12
  1260                 //     ./definition.cue:3:11
  1261  -              //     ./definition.cue:4:6
  1262               }
  1263             }
  1264           }
  1265  @@ -108,9 +93,7 @@
  1266             // [eval]
  1267             c: (_|_){
  1268               // [eval] definition.t1.err.a.c: field not allowed:
  1269  -            //     ./definition.cue:8:5
  1270               //     ./definition.cue:9:5
  1271  -            //     ./definition.cue:11:6
  1272             }
  1273           }
  1274           #A: (#struct){
  1275  @@ -124,32 +107,32 @@
  1276               a: (int){ int }
  1277             }
  1278             x: (#struct){
  1279  -            a: (int){ int }
  1280  -            c: (int){ int }
  1281  -          }
  1282  -        }
  1283  -        p2: (struct){
  1284  -          #A: (#struct){
  1285  -            a: (int){ int }
  1286  -          }
  1287  -          x: (#struct){
  1288  -            a: (int){ int }
  1289  -            c: (int){ int }
  1290  -          }
  1291  -        }
  1292  -        p3: (struct){
  1293  -          x: (#struct){
  1294  -            a: (int){ int }
  1295  -            c: (int){ int }
  1296  -          }
  1297  -          #A: (#struct){
  1298  -            a: (int){ int }
  1299  -          }
  1300  -        }
  1301  -        p4: (struct){
  1302  -          x: (#struct){
  1303  -            a: (int){ int }
  1304  -            c: (int){ int }
  1305  +            c: (int){ int }
  1306  +            a: (int){ int }
  1307  +          }
  1308  +        }
  1309  +        p2: (struct){
  1310  +          #A: (#struct){
  1311  +            a: (int){ int }
  1312  +          }
  1313  +          x: (#struct){
  1314  +            c: (int){ int }
  1315  +            a: (int){ int }
  1316  +          }
  1317  +        }
  1318  +        p3: (struct){
  1319  +          x: (#struct){
  1320  +            c: (int){ int }
  1321  +            a: (int){ int }
  1322  +          }
  1323  +          #A: (#struct){
  1324  +            a: (int){ int }
  1325  +          }
  1326  +        }
  1327  +        p4: (struct){
  1328  +          x: (#struct){
  1329  +            c: (int){ int }
  1330  +            a: (int){ int }
  1331             }
  1332             #A: (#struct){
  1333               a: (int){ int }
  1334  @@ -172,14 +155,7 @@
  1335       }
  1336       t2: (struct){
  1337         ok: (struct){
  1338  -        foo: (#struct){
  1339  -          a: (#struct){
  1340  -            b: (#struct){
  1341  -              C: (int){ 1 }
  1342  -              D: (int){ 2 }
  1343  -            }
  1344  -          }
  1345  -        }
  1346  +        foo: ~(dynamic.t2.ok.#X)
  1347           #X: (#struct){
  1348             a: (#struct){
  1349               b: (#struct){
  1350  @@ -233,8 +209,7 @@
  1351         }
  1352       }
  1353     }
  1354  -  mutual: (_|_){
  1355  -    // [eval]
  1356  +  mutual: (struct){
  1357       t0: (struct){
  1358         ok: (struct){
  1359           c: (struct){
  1360  @@ -301,135 +276,116 @@
  1361           }
  1362         }
  1363       }
  1364  -    t4: (_|_){
  1365  -      // [eval]
  1366  -      ok: (_|_){
  1367  -        // [eval]
  1368  -        p0: (_|_){
  1369  -          // [eval]
  1370  -          z: (_|_){
  1371  -            // [eval] mutual.t4.ok.p0.z: cannot add to field b
  1372  -            // mutual.t4.ok.p0.z: cannot add to field c
  1373  -            d: (struct){
  1374  -              a: (int){ 1 }
  1375  -              b: (int){ 2 }
  1376  -            }
  1377  -            a: (int){ 1 }
  1378  -            b: (int){ 2 }
  1379  -          }
  1380  -          x: (struct){
  1381  -            b: (struct){
  1382  -              a: (int){ 1 }
  1383  -              d: (struct){
  1384  -                b: (int){ 2 }
  1385  -              }
  1386  -            }
  1387  -          }
  1388  -          y: (struct){
  1389  -            c: (struct){
  1390  -              a: (int){ 1 }
  1391  -            }
  1392  -          }
  1393  -        }
  1394  -        p1: (struct){
  1395  -          x: (struct){
  1396  -            b: (struct){
  1397  -              d: (struct){
  1398  -                b: (int){ 2 }
  1399  -              }
  1400  -              a: (int){ 1 }
  1401  -              b: (int){ 2 }
  1402  -            }
  1403  -          }
  1404  -          z: (struct){
  1405  -            d: (struct){
  1406  -              a: (int){ 1 }
  1407  -              b: (int){ 2 }
  1408  -            }
  1409  -            a: (int){ 1 }
  1410  -            b: (int){ 2 }
  1411  -          }
  1412  -          y: (struct){
  1413  -            c: (struct){
  1414  -              a: (int){ 1 }
  1415  -              b: (int){ 2 }
  1416  -            }
  1417  -          }
  1418  -        }
  1419  -        p2: (struct){
  1420  -          x: (struct){
  1421  -            b: (struct){
  1422  -              d: (struct){
  1423  -                b: (int){ 2 }
  1424  -              }
  1425  -              a: (int){ 1 }
  1426  -              b: (int){ 2 }
  1427  -            }
  1428  -          }
  1429  -          y: (struct){
  1430  -            c: (struct){
  1431  -              a: (int){ 1 }
  1432  -              b: (int){ 2 }
  1433  -            }
  1434  -          }
  1435  -          z: (struct){
  1436  -            d: (struct){
  1437  -              a: (int){ 1 }
  1438  -              b: (int){ 2 }
  1439  -            }
  1440  -            a: (int){ 1 }
  1441  -            b: (int){ 2 }
  1442  -          }
  1443  -        }
  1444  -        p3: (struct){
  1445  -          x: (struct){
  1446  -            b: (struct){
  1447  -              d: (struct){
  1448  -                b: (int){ 2 }
  1449  -              }
  1450  -              b: (int){ 2 }
  1451  -              a: (int){ 1 }
  1452  -            }
  1453  -          }
  1454  -          y: (struct){
  1455  -            c: (struct){
  1456  -              b: (int){ 2 }
  1457  -              a: (int){ 1 }
  1458  -            }
  1459  -          }
  1460  -          z: (struct){
  1461  -            d: (struct){
  1462  -              b: (int){ 2 }
  1463  -              a: (int){ 1 }
  1464  -            }
  1465  -            b: (int){ 2 }
  1466  -            a: (int){ 1 }
  1467  -          }
  1468  -        }
  1469  -        p4: (_|_){
  1470  -          // [eval]
  1471  -          z: (_|_){
  1472  -            // [eval] mutual.t4.ok.p4.z: cannot add to field b
  1473  -            // mutual.t4.ok.p4.z: cannot add to field c
  1474  -            d: (struct){
  1475  -              a: (int){ 1 }
  1476  -              b: (int){ 2 }
  1477  -            }
  1478  -            a: (int){ 1 }
  1479  -            b: (int){ 2 }
  1480  -          }
  1481  -          x: (struct){
  1482  -            b: (struct){
  1483  -              d: (struct){
  1484  -                b: (int){ 2 }
  1485  -              }
  1486  -              a: (int){ 1 }
  1487  -            }
  1488  -          }
  1489  -          y: (struct){
  1490  -            c: (struct){
  1491  -              a: (int){ 1 }
  1492  -            }
  1493  +    t4: (struct){
  1494  +      ok: (struct){
  1495  +        p0: (struct){
  1496  +          z: (struct){
  1497  +            d: (struct){
  1498  +              a: (int){ 1 }
  1499  +              b: (int){ 2 }
  1500  +            }
  1501  +            a: (int){ 1 }
  1502  +            b: (int){ 2 }
  1503  +          }
  1504  +          x: (struct){
  1505  +            b: (struct){
  1506  +              d: (struct){
  1507  +                b: (int){ 2 }
  1508  +              }
  1509  +              a: (int){ 1 }
  1510  +              b: (int){ 2 }
  1511  +            }
  1512  +          }
  1513  +          y: (struct){
  1514  +            c: ~(mutual.t4.ok.p0.z.d)
  1515  +          }
  1516  +        }
  1517  +        p1: (struct){
  1518  +          x: (struct){
  1519  +            b: (struct){
  1520  +              d: (struct){
  1521  +                b: (int){ 2 }
  1522  +              }
  1523  +              a: (int){ 1 }
  1524  +              b: (int){ 2 }
  1525  +            }
  1526  +          }
  1527  +          z: (struct){
  1528  +            d: (struct){
  1529  +              a: (int){ 1 }
  1530  +              b: (int){ 2 }
  1531  +            }
  1532  +            a: (int){ 1 }
  1533  +            b: (int){ 2 }
  1534  +          }
  1535  +          y: (struct){
  1536  +            c: ~(mutual.t4.ok.p1.z.d)
  1537  +          }
  1538  +        }
  1539  +        p2: (struct){
  1540  +          x: (struct){
  1541  +            b: (struct){
  1542  +              d: (struct){
  1543  +                b: (int){ 2 }
  1544  +              }
  1545  +              a: (int){ 1 }
  1546  +              b: (int){ 2 }
  1547  +            }
  1548  +          }
  1549  +          y: (struct){
  1550  +            c: ~(mutual.t4.ok.p2.z.d)
  1551  +          }
  1552  +          z: (struct){
  1553  +            d: (struct){
  1554  +              a: (int){ 1 }
  1555  +              b: (int){ 2 }
  1556  +            }
  1557  +            a: (int){ 1 }
  1558  +            b: (int){ 2 }
  1559  +          }
  1560  +        }
  1561  +        p3: (struct){
  1562  +          x: (struct){
  1563  +            b: (struct){
  1564  +              d: (struct){
  1565  +                b: (int){ 2 }
  1566  +              }
  1567  +              a: (int){ 1 }
  1568  +              b: (int){ 2 }
  1569  +            }
  1570  +          }
  1571  +          y: (struct){
  1572  +            c: ~(mutual.t4.ok.p3.z.d)
  1573  +          }
  1574  +          z: (struct){
  1575  +            d: (struct){
  1576  +              a: (int){ 1 }
  1577  +              b: (int){ 2 }
  1578  +            }
  1579  +            a: (int){ 1 }
  1580  +            b: (int){ 2 }
  1581  +          }
  1582  +        }
  1583  +        p4: (struct){
  1584  +          z: (struct){
  1585  +            d: (struct){
  1586  +              a: (int){ 1 }
  1587  +              b: (int){ 2 }
  1588  +            }
  1589  +            a: (int){ 1 }
  1590  +            b: (int){ 2 }
  1591  +          }
  1592  +          x: (struct){
  1593  +            b: (struct){
  1594  +              d: (struct){
  1595  +                b: (int){ 2 }
  1596  +              }
  1597  +              a: (int){ 1 }
  1598  +              b: (int){ 2 }
  1599  +            }
  1600  +          }
  1601  +          y: (struct){
  1602  +            c: ~(mutual.t4.ok.p4.z.d)
  1603             }
  1604           }
  1605           p5: (struct){
  1606  @@ -438,23 +394,20 @@
  1607                 d: (struct){
  1608                   b: (int){ 2 }
  1609                 }
  1610  -              b: (int){ 2 }
  1611  -              a: (int){ 1 }
  1612  -            }
  1613  -          }
  1614  -          y: (struct){
  1615  -            c: (struct){
  1616  -              b: (int){ 2 }
  1617  -              a: (int){ 1 }
  1618  -            }
  1619  -          }
  1620  -          z: (struct){
  1621  -            d: (struct){
  1622  -              b: (int){ 2 }
  1623  -              a: (int){ 1 }
  1624  -            }
  1625  -            b: (int){ 2 }
  1626  -            a: (int){ 1 }
  1627  +              a: (int){ 1 }
  1628  +              b: (int){ 2 }
  1629  +            }
  1630  +          }
  1631  +          y: (struct){
  1632  +            c: ~(mutual.t4.ok.p5.z.d)
  1633  +          }
  1634  +          z: (struct){
  1635  +            d: (struct){
  1636  +              a: (int){ 1 }
  1637  +              b: (int){ 2 }
  1638  +            }
  1639  +            a: (int){ 1 }
  1640  +            b: (int){ 2 }
  1641             }
  1642           }
  1643           check: (struct){
  1644  @@ -476,10 +429,7 @@
  1645               b: (int){ 2 }
  1646             }
  1647             y: (struct){
  1648  -            c: (struct){
  1649  -              a: (int){ 1 }
  1650  -              b: (int){ 2 }
  1651  -            }
  1652  +            c: ~(mutual.t4.ok.check.z.d)
  1653             }
  1654           }
  1655         }
  1656  -- diff/explanation --
  1657  Bug fixes
  1658  -- diff/todo/p2 --
  1659  Reordering / positions.
  1660  -- out/compile --
  1661  --- builtins.cue
  1662  {
  1663    mutualBuiltin: {
  1664      t1: {
  1665        ok: {
  1666          s3: 〈import;strings〉.ContainsAny(〈0;s4〉)
  1667          s4: 〈import;strings〉.ContainsAny(〈0;s3〉)
  1668          s4: "dd"
  1669        }
  1670      }
  1671    }
  1672    mutualBuiltin: {
  1673      t2: {
  1674        ok: {
  1675          s3: 〈import;strings〉.ContainsAny(〈0;s5〉, "dd")
  1676          s5: 〈0;s6〉
  1677          s6: "dd"
  1678        }
  1679      }
  1680    }
  1681  }
  1682  --- chained.cue
  1683  {
  1684    issue3925: {
  1685      reduced: {
  1686        out: 〈import;"encoding/yaml"〉.Marshal(〈0;in〉.b.actual)
  1687        in: {
  1688          a: "actual"
  1689          a: ("actual"|"other")
  1690          b: {
  1691            〈1;a〉: {
  1692              c: "str"
  1693            }
  1694          }
  1695        }
  1696      }
  1697    }
  1698    issue3925: {
  1699      full: {
  1700        for name, _ in 〈0;_inputs〉 {
  1701          out: {
  1702            〈2;name〉: {
  1703              early: "early value"
  1704            }
  1705          }
  1706        }
  1707        _inputs: {
  1708          input1: {
  1709            name: "actual"
  1710            config: {
  1711              〈1;name〉: {
  1712                one: "one value"
  1713              }
  1714            }
  1715          }
  1716        }
  1717        _inputs: {
  1718          [_]: {
  1719            name: ("actual"|"other")
  1720          }
  1721        }
  1722        for name, input in 〈0;_inputs〉 {
  1723          out: {
  1724            〈2;name〉: {
  1725              lateYAML: 〈import;"encoding/yaml"〉.Marshal(〈3;input〉.config[〈3;input〉.name])
  1726            }
  1727          }
  1728        }
  1729      }
  1730    }
  1731  }
  1732  --- comprehensions.cue
  1733  {
  1734    comprehensions: {
  1735      t1: {
  1736        ok: {
  1737          src: [
  1738            "foo",
  1739          ]
  1740          for _, v in 〈0;src〉 {
  1741            "\(〈1;v〉)": 〈1;v〉
  1742          }
  1743        }
  1744      }
  1745    }
  1746  }
  1747  --- definition.cue
  1748  {
  1749    definition: {
  1750      t0: {
  1751        err: {
  1752          #D1: {
  1753            env: {}
  1754          }
  1755          d1: {
  1756            env: {
  1757              c: "C"
  1758            }
  1759          }
  1760          d1: 〈0;#D1〉
  1761        }
  1762      }
  1763    }
  1764    definition: {
  1765      t1: {
  1766        err: {
  1767          a: 〈0;#A〉
  1768          a: {
  1769            c: 1
  1770          }
  1771          #A: {}
  1772        }
  1773      }
  1774    }
  1775    definition: {
  1776      t2: {
  1777        ok: {
  1778          p1: {
  1779            #A: {
  1780              ...
  1781              {
  1782                a: int
  1783              }
  1784            }
  1785            x: (〈0;#A〉 & {
  1786              c: int
  1787            })
  1788          }
  1789        }
  1790      }
  1791    }
  1792    definition: {
  1793      t2: {
  1794        ok: {
  1795          p2: {
  1796            #A: {
  1797              {
  1798                a: int
  1799              }
  1800              ...
  1801            }
  1802            x: (〈0;#A〉 & {
  1803              c: int
  1804            })
  1805          }
  1806        }
  1807      }
  1808    }
  1809    definition: {
  1810      t2: {
  1811        ok: {
  1812          p3: {
  1813            x: (〈0;#A〉 & {
  1814              c: int
  1815            })
  1816            #A: {
  1817              ...
  1818              {
  1819                a: int
  1820              }
  1821            }
  1822          }
  1823        }
  1824      }
  1825    }
  1826    definition: {
  1827      t2: {
  1828        ok: {
  1829          p4: {
  1830            x: (〈0;#A〉 & {
  1831              c: int
  1832            })
  1833            #A: {
  1834              {
  1835                a: int
  1836              }
  1837              ...
  1838            }
  1839          }
  1840        }
  1841      }
  1842    }
  1843  }
  1844  --- dynamic.cue
  1845  {
  1846    dynamic: {
  1847      t1: {
  1848        ok: {
  1849          [string]: {
  1850            name: 〈1;-〉
  1851          }
  1852          〈0;x〉.y: {}
  1853          x: {
  1854            y: "foo"
  1855          }
  1856        }
  1857      }
  1858    }
  1859    dynamic: {
  1860      t2: {
  1861        ok: {
  1862          foo: 〈0;#X〉
  1863          #X: {
  1864            a: {
  1865              b: {
  1866                C: 1
  1867              }
  1868            }
  1869            for _, _ in 〈0;a〉 {
  1870              a: {
  1871                "b": {
  1872                  D: 2
  1873                }
  1874              }
  1875            }
  1876          }
  1877        }
  1878      }
  1879    }
  1880  }
  1881  --- equality.cue
  1882  {
  1883    issue3194: {
  1884      reduced: {
  1885        A: (*0|>10)
  1886        A: (*0|>10)
  1887        {
  1888          out: close({
  1889            b: 〈2;A〉
  1890          })
  1891          out: {
  1892            b: 〈2;A〉
  1893          }
  1894        }.out
  1895      }
  1896    }
  1897  }
  1898  --- expr.cue
  1899  {
  1900    expr: {
  1901      t1: {
  1902        ok: {
  1903          a: 〈0;X〉
  1904          X: 5.0
  1905          X: (〈0;Y〉 / 2)
  1906          Y: (〈0;a〉 * 2)
  1907        }
  1908      }
  1909    }
  1910    expr: {
  1911      t2: {
  1912        ok: {
  1913          A: (〈0;X〉 + 2)
  1914          X: 5
  1915          X: (〈0;A〉 - 2)
  1916        }
  1917      }
  1918    }
  1919    expr: {
  1920      t3: {
  1921        ok: {
  1922          p1: {
  1923            a0: 〈0;X〉
  1924            X: 5.0
  1925            X: (〈0;a0〉 * 1)
  1926          }
  1927        }
  1928      }
  1929    }
  1930    expr: {
  1931      t3: {
  1932        ok: {
  1933          p2: {
  1934            b: (〈0;Y〉 * 1)
  1935            Y: (〈0;b〉 * 1)
  1936            Y: 5.0
  1937          }
  1938        }
  1939      }
  1940    }
  1941    expr: {
  1942      t4: {
  1943        ok: {
  1944          a0: 〈0;X〉
  1945          b0: 〈0;a1〉
  1946          a1: (〈0;a0〉 + 2)
  1947          b1: (〈0;b0〉 - 2)
  1948          a0: 〈0;X〉
  1949          X: 〈0;b1〉
  1950          X: 5.0
  1951        }
  1952      }
  1953    }
  1954  }
  1955  --- in.cue
  1956  {
  1957    mutual: {
  1958      t0: {
  1959        ok: {
  1960          c: (〈0;e〉 & {
  1961            b: 2
  1962          })
  1963          e: {
  1964            a: 1
  1965          }
  1966          e: 〈0;c〉
  1967        }
  1968      }
  1969    }
  1970    mutual: {
  1971      t1: {
  1972        ok: {
  1973          a: {
  1974            〈0;b〉
  1975            b: {
  1976              b: {
  1977                f: 1
  1978              }
  1979            }
  1980          }
  1981          a: 〈0;a〉.b
  1982          a: {
  1983            b: {
  1984              b: {
  1985                f: 1
  1986              }
  1987            }
  1988          }
  1989        }
  1990      }
  1991    }
  1992    mutual: {
  1993      t2: {
  1994        ok: {
  1995          x: {
  1996            a: {
  1997              a: {
  1998                f: 1
  1999              }
  2000            }
  2001          }
  2002          x: 〈0;y〉.a
  2003          y: {
  2004            a: {
  2005              a: {
  2006                e: 1
  2007              }
  2008            }
  2009          }
  2010          y: 〈0;x〉.a
  2011        }
  2012      }
  2013    }
  2014    mutual: {
  2015      t3: {
  2016        ok: {
  2017          d: {
  2018            e: {
  2019              f: 1
  2020            }
  2021          }
  2022          〈0;d〉
  2023          d: {
  2024            d: {
  2025              e: {
  2026                g: 1
  2027              }
  2028            }
  2029          }
  2030        }
  2031      }
  2032    }
  2033    mutual: {
  2034      t4: {
  2035        ok: {
  2036          p0: {
  2037            z: 〈0;x〉.b
  2038            x: {
  2039              b: 〈1;y〉.c
  2040            }
  2041            x: {
  2042              b: {
  2043                d: {
  2044                  b: 2
  2045                }
  2046              }
  2047            }
  2048            y: {
  2049              c: 〈1;z〉.d
  2050            }
  2051            z: {
  2052              d: {
  2053                a: 1
  2054              }
  2055            }
  2056          }
  2057          p1: {
  2058            x: {
  2059              b: 〈1;y〉.c
  2060            }
  2061            z: 〈0;x〉.b
  2062            x: {
  2063              b: {
  2064                d: {
  2065                  b: 2
  2066                }
  2067              }
  2068            }
  2069            y: {
  2070              c: 〈1;z〉.d
  2071            }
  2072            z: {
  2073              d: {
  2074                a: 1
  2075              }
  2076            }
  2077          }
  2078          p2: {
  2079            x: {
  2080              b: 〈1;y〉.c
  2081            }
  2082            x: {
  2083              b: {
  2084                d: {
  2085                  b: 2
  2086                }
  2087              }
  2088            }
  2089            y: {
  2090              c: 〈1;z〉.d
  2091            }
  2092            z: 〈0;x〉.b
  2093            z: {
  2094              d: {
  2095                a: 1
  2096              }
  2097            }
  2098          }
  2099          p3: {
  2100            x: {
  2101              b: {
  2102                d: {
  2103                  b: 2
  2104                }
  2105              }
  2106            }
  2107            y: {
  2108              c: 〈1;z〉.d
  2109            }
  2110            z: 〈0;x〉.b
  2111            x: {
  2112              b: 〈1;y〉.c
  2113            }
  2114            z: {
  2115              d: {
  2116                a: 1
  2117              }
  2118            }
  2119          }
  2120          p4: {
  2121            z: 〈0;x〉.b
  2122            x: {
  2123              b: {
  2124                d: {
  2125                  b: 2
  2126                }
  2127              }
  2128            }
  2129            y: {
  2130              c: 〈1;z〉.d
  2131            }
  2132            x: {
  2133              b: 〈1;y〉.c
  2134            }
  2135            z: {
  2136              d: {
  2137                a: 1
  2138              }
  2139            }
  2140          }
  2141          p5: {
  2142            x: {
  2143              b: {
  2144                d: {
  2145                  b: 2
  2146                }
  2147              }
  2148            }
  2149            y: {
  2150              c: 〈1;z〉.d
  2151            }
  2152            x: {
  2153              b: 〈1;y〉.c
  2154            }
  2155            z: 〈0;x〉.b
  2156            z: {
  2157              d: {
  2158                a: 1
  2159              }
  2160            }
  2161          }
  2162          check: ((((〈0;p1〉 & 〈0;p2〉) & 〈0;p3〉) & 〈0;p4〉) & 〈0;p5〉)
  2163        }
  2164      }
  2165    }
  2166  }