Conversation
|
Ditch |
|
Ditching |
|
I'm happy to merge, even if we change this later, it'll be useful for next week. |
|
Should |
|
@paulyoung, interesting question. However, objects define singleton values. When would you need to abstract over a singleton value, so that you'd need to mention its type? |
|
For example with This is a singleton, yet it would be really nice to use |
|
@nomeata, why stop there? Why not do the same for functions? Let's not go overboard here into the obscure. We should keep type and term definitions separate. The only reason class does both is that that's what it traditionally does. If we remove nominal typing, btw, then it effectively becomes its only purpose: being sugar for combining both a type and a function definition. But it's intentionally an explicit separate form and not built into functions themselves. |
|
I'm happy for you to merge Andreas |
## Changelog for motoko-base: Branch: next-moc Commits: [caffeinelabs/motoko-base@d1d0e694...b0381a88](caffeinelabs/motoko-base@d1d0e69...b0381a8) * [`0631fe40`](caffeinelabs/motoko-base@0631fe4) Prepares open sourcing ([dfinity-lab/motoko-base#79](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/79)) * [`c1c116aa`](caffeinelabs/motoko-base@c1c116a) Sets up unit tests to use the `matchers` library ([dfinity-lab/motoko-base#106](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/106)) * [`8d074912`](caffeinelabs/motoko-base@8d07491) make conversions public; fix doc ([dfinity-lab/motoko-base#113](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/113)) * [`e78f49a4`](caffeinelabs/motoko-base@e78f49a) Public release: Remove old subdir of examples ([dfinity-lab/motoko-base#114](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/114)) * [`2c9d8286`](caffeinelabs/motoko-base@2c9d828) Small fix for open source ([dfinity-lab/motoko-base#115](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/115)) * [`0ca6c694`](caffeinelabs/motoko-base@0ca6c69) Adds filterMap for arrays ([dfinity-lab/motoko-base#101](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/101)) * [`754eb858`](caffeinelabs/motoko-base@754eb85) Readme: Fix vessel instructions ([dfinity-lab/motoko-base#116](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/116)) * [`ed4fcfb4`](caffeinelabs/motoko-base@ed4fcfb) adds note about requiring `vessel` to run the tests ([dfinity-lab/motoko-base#118](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/118)) * [`d04a0e21`](caffeinelabs/motoko-base@d04a0e2) Cleans up a few comments in List ([dfinity-lab/motoko-base#119](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/119)) * [`fd81ac57`](caffeinelabs/motoko-base@fd81ac5) Adds some documentation to the `HashMap` class. ([dfinity-lab/motoko-base#121](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/121)) * [`d0354489`](caffeinelabs/motoko-base@d035448) Remove WordN.toInt ([dfinity-lab/motoko-base#125](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/125))
## Changelog for motoko-base: Branch: next-moc Commits: [caffeinelabs/motoko-base@d1d0e694...b0381a88](caffeinelabs/motoko-base@d1d0e69...b0381a8) * [`0631fe40`](caffeinelabs/motoko-base@0631fe4) Prepares open sourcing ([dfinity-lab/motoko-base#79](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/79)) * [`c1c116aa`](caffeinelabs/motoko-base@c1c116a) Sets up unit tests to use the `matchers` library ([dfinity-lab/motoko-base#106](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/106)) * [`8d074912`](caffeinelabs/motoko-base@8d07491) make conversions public; fix doc ([dfinity-lab/motoko-base#113](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/113)) * [`e78f49a4`](caffeinelabs/motoko-base@e78f49a) Public release: Remove old subdir of examples ([dfinity-lab/motoko-base#114](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/114)) * [`2c9d8286`](caffeinelabs/motoko-base@2c9d828) Small fix for open source ([dfinity-lab/motoko-base#115](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/115)) * [`0ca6c694`](caffeinelabs/motoko-base@0ca6c69) Adds filterMap for arrays ([dfinity-lab/motoko-base#101](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/101)) * [`754eb858`](caffeinelabs/motoko-base@754eb85) Readme: Fix vessel instructions ([dfinity-lab/motoko-base#116](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/116)) * [`ed4fcfb4`](caffeinelabs/motoko-base@ed4fcfb) adds note about requiring `vessel` to run the tests ([dfinity-lab/motoko-base#118](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/118)) * [`d04a0e21`](caffeinelabs/motoko-base@d04a0e2) Cleans up a few comments in List ([dfinity-lab/motoko-base#119](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/119)) * [`fd81ac57`](caffeinelabs/motoko-base@fd81ac5) Adds some documentation to the `HashMap` class. ([dfinity-lab/motoko-base#121](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/121)) * [`d0354489`](caffeinelabs/motoko-base@d035448) Remove WordN.toInt ([dfinity-lab/motoko-base#125](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity-lab/motoko-base/issues/125))
## Changelog for candid: Branch: Commits: [dfinity/candid@a1dcbad4...3e3ad95a](dfinity/candid@a1dcbad...3e3ad95) * [`119703ba`](dfinity/candid@119703b) [Spec] Relax LEB128 decoding ([dfinity/candid#79](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/79)) * [`10f08432`](dfinity/candid@10f0843) Update prim.test.did * [`b2524816`](dfinity/candid@b252481) parser for test suite ([dfinity/candid#78](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/78)) * [`71bf6e76`](dfinity/candid@71bf6e7) release 0.5.2 ([dfinity/candid#80](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/80)) * [`b9f387e3`](dfinity/candid@b9f387e) test suite for JS ([dfinity/candid#81](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/81)) * [`9e5dc775`](dfinity/candid@9e5dc77) Release ([dfinity/candid#82](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/82)) * [`1df9d2d7`](dfinity/candid@1df9d2d) more candid test data ([dfinity/candid#83](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/83)) * [`9e4156d9`](dfinity/candid@9e4156d) fix newtype ([dfinity/candid#85](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/85)) * [`6880a430`](dfinity/candid@6880a43) display for types ([dfinity/candid#86](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/86)) * [`04b1b068`](dfinity/candid@04b1b06) release ([dfinity/candid#87](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/87)) * [`117c6436`](dfinity/candid@117c643) Refactor Lexer ([dfinity/candid#89](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/89)) * [`0a5789f9`](dfinity/candid@0a5789f) fix value pretty printer ([dfinity/candid#92](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/92)) * [`9f35a5aa`](dfinity/candid@9f35a5a) refactor error ([dfinity/candid#94](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/94)) * [`2e742927`](dfinity/candid@2e74292) Parse annvals in textual format ([dfinity/candid#93](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/93)) * [`0a144c79`](dfinity/candid@0a144c7) use principal from ic-types ([dfinity/candid#84](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/84)) * [`01412b14`](dfinity/candid@01412b1) release ([dfinity/candid#95](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/95)) * [`f540df54`](dfinity/candid@f540df5) release ([dfinity/candid#98](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/98)) * [`798675d8`](dfinity/candid@798675d) Add generic functions to encode/decode around a tuple ([dfinity/candid#99](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/99)) * [`0d26e568`](dfinity/candid@0d26e56) release ([dfinity/candid#100](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/100)) * [`191b6f1f`](dfinity/candid@191b6f1) Reset record_nesting_depth after each value ([dfinity/candid#101](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/101)) * [`8e7be65d`](dfinity/candid@8e7be65) fix record ([dfinity/candid#103](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/103)) * [`159533b2`](dfinity/candid@159533b) Update construct.test.did * [`a6ea0991`](dfinity/candid@a6ea099) add service initialization parameters ([dfinity/candid#88](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/88)) * [`3a1f56fa`](dfinity/candid@3a1f56f) refactor: sort dependencies and add traits for error types ([dfinity/candid#105](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/105)) * [`89df78ee`](dfinity/candid@89df78e) support service constructor ([dfinity/candid#106](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/106)) * [`738d5ed4`](dfinity/candid@738d5ed) fix for actor class codegen ([dfinity/candid#107](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/107)) * [`97ba7a0f`](dfinity/candid@97ba7a0) export init args in js ([dfinity/candid#108](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/108)) * [`d4e00adc`](dfinity/candid@d4e00ad) fix js init export ([dfinity/candid#109](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/109)) * [`c1662abe`](dfinity/candid@c1662ab) [spec] Reverse subtyping ([dfinity/candid#110](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/110)) * [`713595be`](dfinity/candid@713595b) The “reverse variant extension rule” is redundand ([dfinity/candid#113](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/113)) * [`79d49a01`](dfinity/candid@79d49a0) Spec: Opt decoding also from non-opt values ([dfinity/candid#114](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/114)) * [`2cfc0ecf`](dfinity/candid@2cfc0ec) improve pretty printing for values ([dfinity/candid#116](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/116)) * [`8fafe345`](dfinity/candid@8fafe34) Un-rename Soundness document ([dfinity/candid#115](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/115)) * [`8e6fc502`](dfinity/candid@8e6fc50) Bump spec version ([dfinity/candid#112](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/112)) * [`7cedebcb`](dfinity/candid@7cedebc) fix clippy ([dfinity/candid#117](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/117)) * [`a732a639`](dfinity/candid@a732a63) Candid UI Canister ([dfinity/candid#111](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/111)) * [`d97b271c`](dfinity/candid@d97b271) disable pretty printing for large vectors ([dfinity/candid#118](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/118)) * [`aceb7f92`](dfinity/candid@aceb7f9) derive candid type for functions ([dfinity/candid#119](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/119)) * [`c3dc0ad7`](dfinity/candid@c3dc0ad) rename derived code for CDK ([dfinity/candid#120](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/120)) * [`d1f8de7d`](dfinity/candid@d1f8de7) release ([dfinity/candid#121](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/121)) * [`3e3ad95a`](dfinity/candid@3e3ad95) remove multi-line string in test suites ([dfinity/candid#125](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/125))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@0f87c270...20e23e1a](dfinity/ic-hs@0f87c27...20e23e1) * [`8c2207ee`](dfinity/ic-hs@8c2207e) query balance and balance128 within the same query ([dfinity/ic-hs#106](https://github.com/dfinity/ic-hs/issues/106)) * [`5a076ad1`](dfinity/ic-hs@5a076ad) rename canister state counter to canister version ([dfinity/ic-hs#109](https://github.com/dfinity/ic-hs/issues/109)) * [`d095478b`](dfinity/ic-hs@d095478) Include ic-ref-test and universal canister in release build artifacts ([dfinity/ic-hs#111](https://github.com/dfinity/ic-hs/issues/111)) * [`3a58e164`](dfinity/ic-hs@3a58e16) Add canister global timer ([dfinity/ic-hs#107](https://github.com/dfinity/ic-hs/issues/107)) * [`c863b6ef`](dfinity/ic-hs@c863b6e) fix provisional top up test ([dfinity/ic-hs#112](https://github.com/dfinity/ic-hs/issues/112)) * [`2cd76efb`](dfinity/ic-hs@2cd76ef) run system tasks periodically ([dfinity/ic-hs#113](https://github.com/dfinity/ic-hs/issues/113)) * [`3c2eb69a`](dfinity/ic-hs@3c2eb69) narrow down gap for canister http_requests between ic-ref(-test) and Interface Spec ([dfinity/ic-hs#100](https://github.com/dfinity/ic-hs/issues/100)) * [`fb76b646`](dfinity/ic-hs@fb76b64) ic-ref-run: Execute heartbeats before any submitted message ([dfinity/ic-hs#114](https://github.com/dfinity/ic-hs/issues/114)) * [`20e23e1a`](dfinity/ic-hs@20e23e1) do not return an HTTP error for calls to stopping/stopped canisters ([dfinity/ic-hs#115](https://github.com/dfinity/ic-hs/issues/115))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@0f87c270...20e23e1a](dfinity/ic-hs@0f87c27...20e23e1) * [`8c2207ee`](dfinity/ic-hs@8c2207e) query balance and balance128 within the same query ([dfinity/ic-hs#106](https://github.com/dfinity/ic-hs/issues/106)) * [`5a076ad1`](dfinity/ic-hs@5a076ad) rename canister state counter to canister version ([dfinity/ic-hs#109](https://github.com/dfinity/ic-hs/issues/109)) * [`d095478b`](dfinity/ic-hs@d095478) Include ic-ref-test and universal canister in release build artifacts ([dfinity/ic-hs#111](https://github.com/dfinity/ic-hs/issues/111)) * [`3a58e164`](dfinity/ic-hs@3a58e16) Add canister global timer ([dfinity/ic-hs#107](https://github.com/dfinity/ic-hs/issues/107)) * [`c863b6ef`](dfinity/ic-hs@c863b6e) fix provisional top up test ([dfinity/ic-hs#112](https://github.com/dfinity/ic-hs/issues/112)) * [`2cd76efb`](dfinity/ic-hs@2cd76ef) run system tasks periodically ([dfinity/ic-hs#113](https://github.com/dfinity/ic-hs/issues/113)) * [`3c2eb69a`](dfinity/ic-hs@3c2eb69) narrow down gap for canister http_requests between ic-ref(-test) and Interface Spec ([dfinity/ic-hs#100](https://github.com/dfinity/ic-hs/issues/100)) * [`fb76b646`](dfinity/ic-hs@fb76b64) ic-ref-run: Execute heartbeats before any submitted message ([dfinity/ic-hs#114](https://github.com/dfinity/ic-hs/issues/114)) * [`20e23e1a`](dfinity/ic-hs@20e23e1) do not return an HTTP error for calls to stopping/stopped canisters ([dfinity/ic-hs#115](https://github.com/dfinity/ic-hs/issues/115))
This allows simply writing
as a declaration (binding
A, 'O', resp.), which avoids the extraletand may make the code look a bit more "natural" to demo.Currently it is based on a small hack in the parser. I spent the better part of the day trying to implement a more general refactoring of recursive binders (which would desugar them all into blocks, including func and class, turning them into expression forms without their own ids), but that turned out to be harder change than I thought. So I'm deferring that til after the holidays. :)
Edit: for now
newandobjectare simply synonym keywords. Need to think about what to do with them after this.