-
Notifications
You must be signed in to change notification settings - Fork 147
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Typechecker fails to unify #842
Comments
This may be helpful to figure out the reason. Use different variables in each place:
The error would become:
|
Marwes
added a commit
to Marwes/gluon
that referenced
this issue
Oct 3, 2021
<a name="v0.18.0"></a> ## v0.18.0 (2021-10-03) #### Bug Fixes * Don't use the empty span in derive macros ([d05f1ca](gluon-lang@d05f1ca)) * Provide the type of imported modules with errors ([d3bfc59](gluon-lang@d3bfc59)) * Don't refine already refined skolems ([f39b396](gluon-lang@f39b396), closes [gluon-lang#842](gluon-lang#842)) * Recognize raw string literals without any `#` ([4d66fbb](gluon-lang@4d66fbb), closes [gluon-lang#885](gluon-lang#885)) * Prevent zero-argument functions from being created in Rust ([e91ea06](gluon-lang@e91ea06), closes [gluon-lang#873](gluon-lang#873)) * Give tuple fields a span ([2a1c2c7](gluon-lang@2a1c2c7)) * xor_shift_new inconsistent description ([591b64b](gluon-lang@591b64b)) #### Performance * Avoid recreating the vm for each formatted file ([0335733](gluon-lang@0335733)) #### Features * Make channels and reference require IO ([c904189](gluon-lang@c904189), breaks [#](https://github.com/gluon-lang/gluon/issues/)) * Allow specifying type signatures in do bindings ([fac08dc](gluon-lang@fac08dc)) * Allow macros to refer to symbols in scope at the expansion site ([1a5489c](gluon-lang@1a5489c), closes [gluon-lang#895](gluon-lang#895)) * Allow the http module to be used without a tcp listener ([c45353d](gluon-lang@c45353d)) * Format seq expressions without seq ([5c0cec2](gluon-lang@5c0cec2)) * Compile block expressions as monadic sequences ([bce5973](gluon-lang@bce5973), closes [gluon-lang#884](gluon-lang#884)) * **std:** * add Option assertions to std.test ([28e5053](gluon-lang@28e5053)) * add modulo functions to int and float ([92f188a](gluon-lang@92f188a)) #### Breaking Changes * Make channels and reference require IO ([c904189](gluon-lang@c904189), breaks [#](https://github.com/gluon-lang/gluon/issues/))
Marwes
added a commit
to Marwes/gluon
that referenced
this issue
Oct 3, 2021
<a name="v0.18.0"></a> ## v0.18.0 (2021-10-03) #### Performance * Avoid recreating the vm for each formatted file ([0335733](gluon-lang@0335733)) #### Breaking Changes * Make channels and reference require IO ([c904189](gluon-lang@c904189), breaks [#](https://github.com/gluon-lang/gluon/issues/)) #### Features * Make channels and reference require IO ([c904189](gluon-lang@c904189), breaks [#](https://github.com/gluon-lang/gluon/issues/)) * Allow specifying type signatures in do bindings ([fac08dc](gluon-lang@fac08dc)) * Allow macros to refer to symbols in scope at the expansion site ([1a5489c](gluon-lang@1a5489c), closes [gluon-lang#895](gluon-lang#895)) * Allow the http module to be used without a tcp listener ([c45353d](gluon-lang@c45353d)) * Format seq expressions without seq ([5c0cec2](gluon-lang@5c0cec2)) * Compile block expressions as monadic sequences ([bce5973](gluon-lang@bce5973), closes [gluon-lang#884](gluon-lang#884)) * **std:** * add Option assertions to std.test ([28e5053](gluon-lang@28e5053)) * add modulo functions to int and float ([92f188a](gluon-lang@92f188a)) #### Bug Fixes * Allow the repl to compile concurrently ([2118f4d](gluon-lang@2118f4d)) * Don't use the empty span in derive macros ([d05f1ca](gluon-lang@d05f1ca)) * Provide the type of imported modules with errors ([d3bfc59](gluon-lang@d3bfc59)) * Don't refine already refined skolems ([f39b396](gluon-lang@f39b396), closes [gluon-lang#842](gluon-lang#842)) * Recognize raw string literals without any `#` ([4d66fbb](gluon-lang@4d66fbb), closes [gluon-lang#885](gluon-lang#885)) * Prevent zero-argument functions from being created in Rust ([e91ea06](gluon-lang@e91ea06), closes [gluon-lang#873](gluon-lang#873)) * Give tuple fields a span ([2a1c2c7](gluon-lang@2a1c2c7)) * xor_shift_new inconsistent description ([591b64b](gluon-lang@591b64b))
bors bot
added a commit
that referenced
this issue
Oct 3, 2021
915: Version 0.18.0 r=Marwes a=Marwes <a name="v0.18.0"></a> ## v0.18.0 (2021-10-03) #### Performance * Avoid recreating the vm for each formatted file ([0335733](0335733)) #### Breaking Changes * Make channels and reference require IO ([c904189](c904189), breaks [#](https://github.com/gluon-lang/gluon/issues/)) #### Features * Make channels and reference require IO ([c904189](c904189), breaks [#](https://github.com/gluon-lang/gluon/issues/)) * Allow specifying type signatures in do bindings ([fac08dc](fac08dc)) * Allow macros to refer to symbols in scope at the expansion site ([1a5489c](1a5489c), closes [#895](#895)) * Allow the http module to be used without a tcp listener ([c45353d](c45353d)) * Format seq expressions without seq ([5c0cec2](5c0cec2)) * Compile block expressions as monadic sequences ([bce5973](bce5973), closes [#884](#884)) * **std:** * add Option assertions to std.test ([28e5053](28e5053)) * add modulo functions to int and float ([92f188a](92f188a)) #### Bug Fixes * Allow the repl to compile concurrently ([2118f4d](2118f4d)) * Don't use the empty span in derive macros ([d05f1ca](d05f1ca)) * Provide the type of imported modules with errors ([d3bfc59](d3bfc59)) * Don't refine already refined skolems ([f39b396](f39b396), closes [#842](#842)) * Recognize raw string literals without any `#` ([4d66fbb](4d66fbb), closes [#885](#885)) * Prevent zero-argument functions from being created in Rust ([e91ea06](e91ea06), closes [#873](#873)) * Give tuple fields a span ([2a1c2c7](2a1c2c7)) * xor_shift_new inconsistent description ([591b64b](591b64b)) Co-authored-by: Markus Westerlind <marwes91@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I finally got around to implementing an immutable vector type (#472). While implementing it, I ran into a case where the typechecker fails to unify, when it should.
Condensed example:
The specific lines the typechecker doesn't seem to like are lines 28 - 34, but am not sure for what reason. Full error:
The text was updated successfully, but these errors were encountered: