{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihmjux32kjzlr4ydccr34ws5brux2hsmycbu3wy2efbcmsugjtrzq",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mjcvznalnbp2"
  },
  "path": "/t/would-keyword-arguments-conflict-with-currying-in-haskell/13906#post_9",
  "publishedAt": "2026-04-12T16:15:01.000Z",
  "site": "https://discourse.haskell.org",
  "textContent": "The difficult part is what if you have functions with multiple bodies, or functions that pattern match args immediately?\n\n\n    foo :: Foo -> Bar -> Int\n    foo Foo{a, b = 123} bar1 = a\n    foo Foo{a, b} bar2 = other b\n\n\nI would also want the ability to separate “the keyword arg callers must use” from “name of local var I’m assigning to this arg”.\n\nI think a syntax like this could be interesting:\n\n\n    foo :: a:Foo -> b:Bar -> Int\n    foo Foo{} bar = ...\n",
  "title": "Would keyword arguments conflict with currying in Haskell?"
}