A fast, friendly, functional language. https://roc-lang.org
Find a file
Ayaz Hafiz b43078440f
Ensure ability-bound variables are registered in their generalization pool
When we attempt to bind a type argument to an ability in an alias/opaque
instantiation, we create a fresh flex var to represent satisfaction of
the ability, and then unify the type argument with that flex var.
Previously, we did not register this fresh var in the appropriate rank
pool.

Usually this is not a problem; however, our generalization algorithm is
such that we skip adjusting the rank of redundant variables. Redundant
variables are those that are in the same unification tree, but are not
the root of the unification trees.

This means that if such a flex able var becomes the root of a
unification tree with the type argument, and the type argument is itself
generalized, we will have missed generalization of the argument.

The fix is simple - make sure to register the flex able var into the
appropriate rank pool.

Closes #4408
2022-11-16 17:09:47 -06:00
.cargo rename wasm-cli-run -> gen-llvm-wasm 2022-07-10 14:08:35 +02:00
.github ignore some tests on windows 2022-11-16 13:58:21 +01:00
.reuse s/rtfeldman/roc-lang/g in links to GitHub repos 2022-08-12 15:24:09 -04:00
ci Bump regex from 1.5.4 to 1.5.5 in /ci/benchmarks/bench-runner 2022-11-02 13:37:29 +00:00
crates Ensure ability-bound variables are registered in their generalization pool 2022-11-16 17:09:47 -06:00
design added proposed status 2022-09-30 19:45:17 +02:00
devtools vscode marketplace example 2022-10-28 11:33:01 +02:00
examples Merge pull request #4508 from roc-lang/windows-final-cli-tests 2022-11-16 18:21:49 +01:00
getting_started add zig version 2022-11-14 09:36:09 +01:00
nightly_benches changed Cargo versions from 0.1.0 to 0.0.1 2022-08-03 11:41:19 +02:00
www Remove inline styles from integer types table 2022-11-13 15:05:43 -05:00
.gitignore Merge branch 'main' of github.com:roc-lang/roc into editor_launch_fix 2022-11-04 15:15:55 +01:00
.llvmenv Update .llvmenv 2022-05-09 19:45:09 +02:00
AUTHORS Update AUTHORS 2022-10-31 20:58:26 -04:00
BUILDING_FROM_SOURCE.md add zig version 2022-11-14 09:36:09 +01:00
Cargo.lock Collect deeply nested type names in alias analysis 2022-11-15 09:23:28 -06:00
Cargo.toml more workspace dependencies 2022-11-13 16:10:02 +01:00
CODE_OF_CONDUCT.md Use dashes for list markers 2022-09-09 01:12:31 -06:00
CONTRIBUTING.md typos 2022-11-16 16:15:12 +01:00
default.nix update cargoSha256 2022-11-01 22:00:05 -05:00
FAQ.md add question to FAQ 2022-10-24 16:08:43 +02:00
flake.lock rust 1.64 + clippy 2022-11-09 19:35:09 +01:00
flake.nix Merge branch 'main' into benchmarks-to-nix 2022-10-18 13:43:09 +02:00
LEGAL_DETAILS remove unused install-ci-libraries.sh 2022-05-09 09:24:37 +02:00
LICENSE Use © instead of (c) for copyright symbol 2021-05-03 21:18:36 -04:00
mlc_config.json Add Dict module to the testing CI 2022-10-23 08:37:59 -04:00
README.md make docs links stand out more 2022-10-03 17:15:03 +02:00
roc-for-elm-programmers.md Update roc-for-elm-programmers about booleans 2022-10-03 00:55:36 -04:00
rust-toolchain.toml windows fixes 2022-11-14 19:37:25 +01:00
shell.nix formatted nix files 2022-06-03 16:51:54 +02:00
TUTORIAL.md Update list pattern matching section of tutorial 2022-11-06 01:42:32 -04:00
typos.toml Merge branch 'main' into markdown 2022-09-06 08:31:49 +02:00
version.txt Have version.txt include newlines; don't add any 2022-06-18 22:41:56 -04:00

Work in progress!

Roc is not ready for a 0.1 release yet, but we do have:

If you'd like to get involved in contributing to the language, the Zulip chat is also the best place to get help with good first issues.

Sponsors

We are very grateful to our sponsors NoRedInk, rwx, and Tweede golf.

NoRedInk logo      rwx logo      tweede golf logo

If you or your employer would like to sponsor Roc's development, please DM Richard Feldman on Zulip!