A fast, friendly, functional language. https://roc-lang.org
Find a file
Ayaz Hafiz cd2b936a59
Ensure that disjoint nested lambda sets force parents to be disjoint
We must be careful to ensure that if unifying nested lambda sets
results in disjoint lambdas, that the parent lambda sets are
ultimately treated disjointly as well.
Consider

```
  v1: {} -[ foo ({} -[ bar Str ]-> {}) ]-> {}
~ v2: {} -[ foo ({} -[ bar U64 ]-> {}) ]-> {}
```

When considering unification of the nested sets

```
  [ bar Str ]
~ [ bar U64 ]
```

we should not unify these sets, even disjointly, because that would
ultimately lead us to unifying

```
v1 ~ v2
=> {} -[ foo ({} -[ bar Str, bar U64 ]-> {}) ] -> {}
```

which is quite wrong - we do not have a lambda `foo` that captures
either `bar captures: Str` or `bar captures: U64`, we have two
different lambdas `foo` that capture different `bars`. The target
unification is

```
v1 ~ v2
=> {} -[ foo ({} -[ bar Str ]-> {}),
         foo ({} -[ bar U64 ]-> {}) ] -> {}
```

Closes #4712
2022-12-12 14:51:18 -06:00
.cargo Add debug flag to check IR after specialization 2022-12-05 18:05:35 -06:00
.github back to cron 2022-12-10 15:13:39 +01:00
.reuse s/rtfeldman/roc-lang/g in links to GitHub repos 2022-08-12 15:24:09 -04:00
ci fix release packaging 2022-12-07 16:53:38 +01:00
crates Ensure that disjoint nested lambda sets force parents to be disjoint 2022-12-12 14:51:18 -06:00
design design doc updates 2022-11-25 12:01:06 +01:00
devtools vscode marketplace example 2022-10-28 11:33:01 +02:00
examples Merge pull request #4714 from roc-lang/expect-dbg-atomics 2022-12-09 09:21:13 +01:00
getting_started tutorial and docs improvements 2022-12-05 14:53:18 +01:00
nightly_benches changed Cargo versions from 0.1.0 to 0.0.1 2022-08-03 11:41:19 +02:00
www Merge pull request #4722 from roc-lang/update_tutorial_macos 2022-12-10 11:59:47 +01:00
.gitignore Merge remote-tracking branch 'origin/main' into expect-print-values 2022-12-08 23:42:03 +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 Update cargo lock 2022-12-12 14:50:53 -06:00
Cargo.toml Merge pull request #4653 from roc-lang/fix-mv 2022-12-02 07:19:57 -05: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 inkwell nix sha 2022-12-04 09:07:44 +01:00
FAQ.md Revise roc-for-elm-programmers re: dbg and crash 2022-12-08 06:09:01 -05: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 Delete TUTORIAL.md in favor of HTML version 2022-11-24 16:06:37 -05:00
roc-for-elm-programmers.md Add testing section to roc-for-elm-programmers 2022-12-08 06:09:53 -05:00
rust-toolchain.toml Add wasm32-wasi to targets in rust-toolchian.toml 2022-11-26 08:20:18 -05:00
shell.nix formatted nix files 2022-06-03 16:51:54 +02:00
typos.toml Merge branch 'main' into markdown 2022-09-06 08:31:49 +02:00
version.txt Make version.txt default to a valid file path 2022-11-20 10:55:15 -05: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!