{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreidqva5w4y44nuscmbzgudozcet4ohqqsxhp7r64z37dodamppfu54",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mizefrt53tr2"
},
"path": "/t/http-tower-hs-a-rust-tower-inspired-middleware-library-for-haskell/13892?page=2#post_23",
"publishedAt": "2026-04-08T17:10:44.000Z",
"site": "https://discourse.haskell.org",
"textContent": "You implemented all the instances by hand. I would recommend always using deriving via if possible. In this case, your type is isomorphic to `Kleisli (ExceptT ServiceError IO)`, and all the instances (including others that we haven’t talked about like `Alternative`) come from there. This way you (and readers of your code) can be sure all the instances are correct.",
"title": "Http-tower-hs — A Rust Tower-inspired middleware library for Haskell"
}