From ce28429d5e528f6657c354fa0ba16888b36833d7 Mon Sep 17 00:00:00 2001 From: Robert Peele Date: Sat, 23 May 2026 21:25:05 -0400 Subject: [PATCH 1/2] Update doc comment. --- src/Rezoom.SQL.Compiler/AST.fs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/Rezoom.SQL.Compiler/AST.fs b/src/Rezoom.SQL.Compiler/AST.fs index bea13cf..cd485a3 100644 --- a/src/Rezoom.SQL.Compiler/AST.fs +++ b/src/Rezoom.SQL.Compiler/AST.fs @@ -1,19 +1,24 @@ // Abstract syntax tree for our generic SQL dialect that we can parse and translate to different backends. -// "Last edited 9 years ago". My God. I was so ambitious and smart and utterly foolish then. I am less of all three now. -// I thought this code was self-documenting. -// Coming back to it after so long, I must admit it took me some head scratching to understand: // When a type in the AST takes generic parameters <'t, 'e>, 't means table type info and 'e means expression type info. // Well, technically 't could be info about something other than a table, like a view, but basically it's a table-ish thing in the DB. -// AST members carry these info properties around so they can have metadata attached about what their type is. + +// AST members carry these info properties around so they can have metadata attached as we proceed through typechecking. + // A string goes through the parser and makes an AST because we initially don't know jack about what it refers to. // When we start typechecking it against a user model (SQL schema, tables and views etc) in TypeChecker.fs, we produce // an AST of , ExprInfo>. + // Those types are aliased in InferredTypes.fs. +// Depending on how far we've gotten through typechecking, an InferredType can be anything from "no idea", to +// "not sure yet but it's a non-null version of whatever this sub-select's first column turns out to be", to +// "definitely an int32". + // When we are done processing type inference, we turn our conclusions about each type into a finalized // AST of , ExprInfo>. // Those types are aliased in ExprInfo.fs. -// Finally, that fully typechecked AST is what gets fed into the backend for translation to CommandFragments. -// And that's the way it is. + +// Finally, that fully typechecked AST is what gets fed into the backend for translation to CommandFragments +// which are raw SQL strings and parameter references. namespace Rezoom.SQL.Compiler open System From a4fabf17894ee403a9edec38b48875b6e5a4dbbe Mon Sep 17 00:00:00 2001 From: Robert Peele Date: Tue, 23 Jun 2026 23:40:45 -0400 Subject: [PATCH 2/2] Change top line doc links to point directly to ghio book. --- README.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/README.md b/README.md index 2f70d0f..6cf2c4c 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,7 @@ ---- -title: About -nav_order: 0 ---- - -**Documentation:** [Tutorial](doc/Tutorial/README.md) | [Using Rezoom](doc/Rezoom/README.md) | [Configuration](doc/Configuration/README.md) | [Language](doc/Language/README.md) | [UserTypes](doc/UserTypes/README.md) | [API](doc/API/README.md) +**Documentation:** [Tutorial](https://fsprojects.github.io/Rezoom.SQL/doc/Tutorial/README.html) | [Using Rezoom](https://fsprojects.github.io/Rezoom.SQL/doc/Rezoom/README.html) | [Configuration](https://fsprojects.github.io/Rezoom.SQL/doc/Configuration/README.html) | [Language](https://fsprojects.github.io/Rezoom.SQL/doc/Language/README.html) | [UserTypes](https://fsprojects.github.io/Rezoom.SQL/doc/UserTypes/README.html) | [API](https://fsprojects.github.io/Rezoom.SQL/doc/API/README.html) -[More nicely formatted docs with sidebar navigation on Github.io](https://fsprojects.github.io/Rezoom.SQL/README.html) - [Query playground -- try out the SQL dialect live!](https://rzsql.com/#1F854F9945C2061389778AE5DB98238E21D3A62B) # Statically typed SQL for F#, new and improved for 2026 #