{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreidqva5w4y44nuscmbzgudozcet4ohqqsxhp7r64z37dodamppfu54",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mizl55gr43e2"
  },
  "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"
}