Hello - In order to do some testing and studying, I am playing with an extremely simplified example, using the Ur/Web Sql demo as a starting point:
http://www.impredicative.com/ur/demo/sql.html That demo had one table called `t`: table t : { A : int, B : float, C : string, D : bool } PRIMARY KEY A My example extends this very slightly, to use a "parent" table `color` and "child" table `thing`: table color : { Id : int, Nam : string } PRIMARY KEY Id table thing : { Id : int, Nam : string, Color : int } PRIMARY KEY Id, CONSTRAINT Color FOREIGN KEY Color REFERENCES color(Id) To keep things ultra-simple, there is no GUI for "parent" table `color` - it has to be populated using psql. === The new code, which is very short, is in this github repo: https://github.com/StefanScott/urweb-color-thing-THING The above code DOES NOT compile, giving some unification failure error messages about tables `thing` and `t`. These compiler errors are shown in Issue 1 on the above github repo: https://github.com/StefanScott/urweb-color-thing-THING/issues/1 === Mystery: There is no table `t` mentioned anywhere in the above github repo! (There WAS a table `t` in the original Sql demo, but I had already renamed all occurrences of it to table `thing`.) Extra checking: I have done a search (for string "t" - whole words, non-case-sensitive) to confirm that there are no occurrences of a table `t` anywhere in the above github repo. Nevertheless, the compiler keeps referring to a mysterious table `t`, which does not match the table `thing`, so the code doesn't compile. I have also carefully checked the upper- and lower-case for all the table names, field names, and structure names, and they look fine. I have also checked additional things: (a) confirming that ReadError is only used on numeric fields; (b) confirming that neither table uses a sequence for the `Id` field. === Now, as a test, I renamed all occurrences of table `thing` to `t` in the above github repo, producing a new, separate github repo: https://github.com/StefanScott/urweb-color-thing-T The code in this repo (identical to the code in the previous repo, except all occurrences of table `thing` have been renamed to table `t`) DOES compile and run fine! === So the above two github repos are identical - except one uses a table called `thing` and the other uses a table called `t`. The code using table `thing` DOES NOT compile (and complains about unification errors involving a non-existent table `t`) - but the code using table `t` DOES compile and runs fine! Why is this? === Note: I have also tried extending this, adding a struct for table `color`. When attempting to compile using two different structs for tables `color` and `thing`, there are twice as many compiler errors - always complaining about the same unification failures with some mysterious, non-existent table `t`. Thanks for any help solving this mystery! ###
_______________________________________________ Ur mailing list [email protected] http://www.impredicative.com/cgi-bin/mailman/listinfo/ur
