* Explode the From GADT. Move runFrom into the ToFrom typeclass removing the need for the intermediate structure. Extract the parts of the Experimental module into submodules.
* Reorganize Experimental folder. Move Subquery into core Experimental.From module.
* Cleanup hackage documentation. Make sure stylish ran correctly. Update changelog and bump version
* Update ERaw to change the direction of NeedParens (parent now tells child context). Removed need for composite key constructor
* Get rid of AliasedValue and ValueReference; added sqlExprMetaAlias to SqlExprMeta
* Remove EList and EEmptyList; ERaw is now technically possible in each case since it is generalized to all
* Remove entity specific constructors from SqlExpr
* Remove EOrderBy, EDistinctOn; Change PreprocessedFrom a to just be an independent datatype
* Remove EOrderByRandom, calling distinctOnOrderBy with rand will choke the db but you shouldnt be using rand anyway. distinctOnOrderBy seems dangerous though
* Remove ESet
* Remove EInsert and EInsertFinal
* Make postgres tests pass
* Change aliased val to be legal value by waiting until expr materialization in select clause before adding AS <alias>
* Cleanup ToAliasRefernce; Add isReference meta to value reference even though that info isnt currently used anywhere
* Expose Experimental submodules
* Update changelog
* Create a FromRaw to replace FromSubquery and FromIdent in from clause. Modify Experimental to only use FromRaw.
* Convert all of experimental to use new From type instead of From type class. Make the data constructors second class, functions should be used. Introduce *Lateral functions, using the same type for lateral and non lateral queries was probably a mistake.
* Expose the new functions and fix the mysql test compilation error (type inference was wonky with `Union` replaced with `union_`
* Bump version and add more comments
* ValidOnClause was too restrictive, ToFrom is actually the correct amount of leniency. ValidOnClause would not catch use of on for a cross join but would prevent nested joins
* Unbreak lateral joins by introducing a completely different ValidOnClause constraint
* Fixe error introduced in merge with master
* Dont realias alias references
* Never realias an already aliased Entity or Value
* reindex value references to the latest 'source'
* run mysql tests
* uhhh why are you like this
* stuff
* tests pass locally
* make the example work
* minor bump
* fix gha
* k
* no persistent-template dependency please
* it passed?
* ci nonsense
* uh
* i think that should do it
* ok no really
* i miss file-watch
* sigh
* come on pls
* stylish haskell
* i hate this
* Add new SetOperation constructor for parenthesized query. Automatically detect when parentheses are needed on SelectQuery usage (only works for MySQL).
* Add Parens to SelectQueryP and create a pattern synonym for SelectQuery. SelectQueryP is hidden as end users should only be using SelectQuery.