mighty-gerbils / gerbil

Gerbil Scheme
https://cons.io
GNU Lesser General Public License v2.1
1.13k stars 111 forks source link

Path dependent types #1209

Closed vyzo closed 2 months ago

vyzo commented 2 months ago

Introduces path dependent types, whereby if transforms in type related passes are aware of predicates and can assert the type for the right branch. This can catch more type errors, provide higher fidelity type inferences and improve performance a little.

It also caught 3 bugs in the stdlib.

On top of #1208

netlify[bot] commented 2 months ago

Deploy Preview for elastic-ritchie-8f47f9 ready!

Name Link
Latest commit 090a26a6400adb7bdfd08e46beb9e9321b3ea3e6
Latest deploy log https://app.netlify.com/sites/elastic-ritchie-8f47f9/deploys/661803e240879d00087cc368
Deploy Preview https://deploy-preview-1209--elastic-ritchie-8f47f9.netlify.app
Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

vyzo commented 2 months ago

rebased on master.

fare commented 2 months ago

I admit I don't fully follow the compiler changes, but nothing strikes me as wrong.

I don't like the syntax for pattern matching on keywords in ast-case, but didn't like the one in syntax-case, either.