{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreid72jnvuchm5j57i2px5o5nj5l2n7qp3q6nvjzlnjqmybnqeplwm4",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mhlcx6lvj6q2"
},
"path": "/t/sneak-peek-bolt-math/13766?page=2#post_27",
"publishedAt": "2026-03-21T04:06:38.000Z",
"site": "https://discourse.haskell.org",
"textContent": "Got it, I misunderstood.\nBy the way, is arity a necessary type parameter for Function? I don’t see where it gets used, and wouldn’t a `Length` type family on args work if it was ever needed?\n\n\n type Function :: k -> [Type] -> Contraint\n class Function r args | r -> args where\n type Return r args :: Type\n call :: Call args (Return r args)\n\n\nWon’t this also compile and be simpler, with the same amount of type inference? I don’t see arity doing any work in the code.",
"title": "Sneak Peek: Bolt Math"
}