{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreifc7a2tfv3a4n3h6wfnucegh7k3c3ejmwvh74vcurf2ff6cm44ayy",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mewktvdurzh2"
  },
  "path": "/t/testing-the-waters-umcs-unified-method-call-syntax/24014#post_5",
  "publishedAt": "2026-02-15T20:33:42.000Z",
  "site": "https://internals.rust-lang.org",
  "tags": [
    "a magic for two-phase borrows"
  ],
  "textContent": "I think I prefer `x.(foo, param1, param2, param3)` for `foo(x, param1, param2, param3)`. One advantage is that it resolves the issue of what to do with an unapplied function - it doesn't _look_ like currying:\n\nkornel:\n\n> One thing I'm concerned about: is this currying? Can `x.(foo)` exist as a value, rather than just being part of a method call syntax? If so, what type does it have, with what lifetimes? Rust currently has a magic for two-phase borrows where `x.foo(x.bar)` is special. I'm afraid that currying wouldn't support that (at least not without new magic in the borrow checker and the type system), so changing `x.foo(x.bar)` to `x.(foo)(x.bar)` would fix one thing and break another.\n\nAnother advantage is that it has less parenthesis.\n\nIn any case I just hope Rust gets something like it!",
  "title": "Testing the waters: UMCS (Unified Method Call Syntax)"
}