{"action":"created","issue":{"url":"https://api.github.com/repos/jaspervdj/hakyll/issues/341","labels_url":"https://api.github.com/repos/jaspervdj/hakyll/issues/341/labels{/name}","comments_url":"https://api.github.com/repos/jaspervdj/hakyll/issues/341/comments","events_url":"https://api.github.com/repos/jaspervdj/hakyll/issues/341/events","html_url":"https://github.com/jaspervdj/hakyll/issues/341","id":65260395,"number":341,"title":"Is there a reason that a context is not a functor?","user":{"login":"NorfairKing","id":3521180,"avatar_url":"https://avatars.githubusercontent.com/u/3521180?v=3","gravatar_id":"","url":"https://api.github.com/users/NorfairKing","html_url":"https://github.com/NorfairKing","followers_url":"https://api.github.com/users/NorfairKing/followers","following_url":"https://api.github.com/users/NorfairKing/following{/other_user}","gists_url":"https://api.github.com/users/NorfairKing/gists{/gist_id}","starred_url":"https://api.github.com/users/NorfairKing/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NorfairKing/subscriptions","organizations_url":"https://api.github.com/users/NorfairKing/orgs","repos_url":"https://api.github.com/users/NorfairKing/repos","events_url":"https://api.github.com/users/NorfairKing/events{/privacy}","received_events_url":"https://api.github.com/users/NorfairKing/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-03-30T17:26:13Z","updated_at":"2015-03-30T17:36:22Z","closed_at":"2015-03-30T17:36:22Z","body":"I think the title says it all"},"comment":{"url":"https://api.github.com/repos/jaspervdj/hakyll/issues/comments/87765932","html_url":"https://github.com/jaspervdj/hakyll/issues/341#issuecomment-87765932","issue_url":"https://api.github.com/repos/jaspervdj/hakyll/issues/341","id":87765932,"user":{"login":"jaspervdj","id":95501,"avatar_url":"https://avatars.githubusercontent.com/u/95501?v=3","gravatar_id":"","url":"https://api.github.com/users/jaspervdj","html_url":"https://github.com/jaspervdj","followers_url":"https://api.github.com/users/jaspervdj/followers","following_url":"https://api.github.com/users/jaspervdj/following{/other_user}","gists_url":"https://api.github.com/users/jaspervdj/gists{/gist_id}","starred_url":"https://api.github.com/users/jaspervdj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaspervdj/subscriptions","organizations_url":"https://api.github.com/users/jaspervdj/orgs","repos_url":"https://api.github.com/users/jaspervdj/repos","events_url":"https://api.github.com/users/jaspervdj/events{/privacy}","received_events_url":"https://api.github.com/users/jaspervdj/received_events","type":"User","site_admin":false},"created_at":"2015-03-30T17:36:22Z","updated_at":"2015-03-30T17:36:22Z","body":"It simply is not a functor. Note that a simplified version of context would be more or less:\r\n```haskell\r\nnewtype Context a = Context (a -> String)\r\n```\r\n\r\nIf you try implementing the `Functor` instance for that, you will notice that the arrows for the functions are \"reversed\". That is because while it is not a functor, it is a [contravariant functor](https://hackage.haskell.org/package/contravariant). It doesn't have an instance, though, because `contramap` is rarely used."}}