{
"$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?"
}