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