{"action":"created","issue":{"url":"https://api.github.com/repos/isomorphism/these/issues/15","labels_url":"https://api.github.com/repos/isomorphism/these/issues/15/labels{/name}","comments_url":"https://api.github.com/repos/isomorphism/these/issues/15/comments","events_url":"https://api.github.com/repos/isomorphism/these/issues/15/events","html_url":"https://github.com/isomorphism/these/issues/15","id":80568958,"number":15,"title":"non-clear use of `join` in the definition of laws","user":{"login":"imz","id":740014,"avatar_url":"https://avatars.githubusercontent.com/u/740014?v=3","gravatar_id":"","url":"https://api.github.com/users/imz","html_url":"https://github.com/imz","followers_url":"https://api.github.com/users/imz/followers","following_url":"https://api.github.com/users/imz/following{/other_user}","gists_url":"https://api.github.com/users/imz/gists{/gist_id}","starred_url":"https://api.github.com/users/imz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/imz/subscriptions","organizations_url":"https://api.github.com/users/imz/orgs","repos_url":"https://api.github.com/users/imz/repos","events_url":"https://api.github.com/users/imz/events{/privacy}","received_events_url":"https://api.github.com/users/imz/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-05-25T15:22:13Z","updated_at":"2015-08-24T21:48:30Z","closed_at":"2015-08-24T21:48:30Z","body":"<http://hackage.haskell.org/package/these-0.4.2/docs/Data-Align.html>:\r\n\r\n     join align = fmap (join These)\r\n\r\nwhereas\r\n\r\n    align :: f a -> f b -> f (These a b)\r\n\r\n`join` is known as an operation for monads: `Monad m => m m a -> m a`.\r\n\r\nI don't understand how this applies to `align`.\r\n\r\nCould you please clarify this?"},"comment":{"url":"https://api.github.com/repos/isomorphism/these/issues/comments/134390090","html_url":"https://github.com/isomorphism/these/issues/15#issuecomment-134390090","issue_url":"https://api.github.com/repos/isomorphism/these/issues/15","id":134390090,"user":{"login":"isomorphism","id":334073,"avatar_url":"https://avatars.githubusercontent.com/u/334073?v=3","gravatar_id":"","url":"https://api.github.com/users/isomorphism","html_url":"https://github.com/isomorphism","followers_url":"https://api.github.com/users/isomorphism/followers","following_url":"https://api.github.com/users/isomorphism/following{/other_user}","gists_url":"https://api.github.com/users/isomorphism/gists{/gist_id}","starred_url":"https://api.github.com/users/isomorphism/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/isomorphism/subscriptions","organizations_url":"https://api.github.com/users/isomorphism/orgs","repos_url":"https://api.github.com/users/isomorphism/repos","events_url":"https://api.github.com/users/isomorphism/events{/privacy}","received_events_url":"https://api.github.com/users/isomorphism/received_events","type":"User","site_admin":false},"created_at":"2015-08-24T21:48:30Z","updated_at":"2015-08-24T21:48:30Z","body":"Using `join` like that is admittedly a bit obtuse if you're not familiar with the idiom, heh. If there was a less general `(r -> r -> a) -> (r -> a)` I'd use that for clarity, but otherwise I think it's fine as-is."}}