{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihwb3ykei4qoskkr5xjojqlhjnbtccrshc77qqjsy3auhl6gy3ike",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mfolayj7hel2"
  },
  "path": "/t/applicative-wired-monad-pattern/12779?page=2#post_23",
  "publishedAt": "2026-02-25T09:40:50.000Z",
  "site": "https://discourse.haskell.org",
  "textContent": "By convenience. The free’s `Ap` gives you a `Functor` instance for any `f` that doesn’t have one (my GADT `Spec` type doesn’t), and free’s `Free` wants something that’s an instance of `Functor`. I suppose a _freer_ monad would do the same trick that `Ap` is doing for me. But I think overall these are implementation details.",
  "title": "Applicative-wired monad pattern"
}