{"action":"created","issue":{"url":"https://api.github.com/repos/goldfirere/thesis/issues/10","repository_url":"https://api.github.com/repos/goldfirere/thesis","labels_url":"https://api.github.com/repos/goldfirere/thesis/issues/10/labels{/name}","comments_url":"https://api.github.com/repos/goldfirere/thesis/issues/10/comments","events_url":"https://api.github.com/repos/goldfirere/thesis/issues/10/events","html_url":"https://github.com/goldfirere/thesis/issues/10","id":253383518,"number":10,"title":"IxMonad (EffM m)","user":{"login":"Icelandjack","id":501899,"avatar_url":"https://avatars3.githubusercontent.com/u/501899?v=4","gravatar_id":"","url":"https://api.github.com/users/Icelandjack","html_url":"https://github.com/Icelandjack","followers_url":"https://api.github.com/users/Icelandjack/followers","following_url":"https://api.github.com/users/Icelandjack/following{/other_user}","gists_url":"https://api.github.com/users/Icelandjack/gists{/gist_id}","starred_url":"https://api.github.com/users/Icelandjack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Icelandjack/subscriptions","organizations_url":"https://api.github.com/users/Icelandjack/orgs","repos_url":"https://api.github.com/users/Icelandjack/repos","events_url":"https://api.github.com/users/Icelandjack/events{/privacy}","received_events_url":"https://api.github.com/users/Icelandjack/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-08-28T16:28:50Z","updated_at":"2017-08-28T16:31:03Z","closed_at":"2017-08-28T16:31:03Z","body":"Unsurprisingly `EffM` fits into the [indexed hierarchy](https://hackage.haskell.org/package/indexed-0.1.3/docs/Control-Monad-Indexed.html)\r\n\r\n```haskell\r\ninstance IxFunctor (EffM m) where\r\n  imap :: (a -> a') -> (EffM m i i' a -> EffM m i i' a')\r\n  imap f ma = ma >>>= \\a -> ireturn (f a)\r\n\r\ninstance IxPointed (EffM m) where\r\n  ireturn :: a -> EffM m xs xs a\r\n  ireturn = Value\r\n\r\ninstance IxApplicative (EffM m) where\r\n  iap :: EffM m i i' (a -> a') -> (EffM m i' i'' a -> EffM m i i'' a')\r\n  iap = iapIxMonad\r\n\r\ninstance IxMonad (EffM m) where\r\n  ibind :: (a -> EffM m i' i'' a') -> (EffM m i i' a -> EffM i' i'' a')\r\n  ibind = flip Ebind\r\n```\r\n\r\nso I suppose you could rebind the syntax to work with any indexed `Monad`."},"comment":{"url":"https://api.github.com/repos/goldfirere/thesis/issues/comments/325404080","html_url":"https://github.com/goldfirere/thesis/issues/10#issuecomment-325404080","issue_url":"https://api.github.com/repos/goldfirere/thesis/issues/10","id":325404080,"user":{"login":"Icelandjack","id":501899,"avatar_url":"https://avatars3.githubusercontent.com/u/501899?v=4","gravatar_id":"","url":"https://api.github.com/users/Icelandjack","html_url":"https://github.com/Icelandjack","followers_url":"https://api.github.com/users/Icelandjack/followers","following_url":"https://api.github.com/users/Icelandjack/following{/other_user}","gists_url":"https://api.github.com/users/Icelandjack/gists{/gist_id}","starred_url":"https://api.github.com/users/Icelandjack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Icelandjack/subscriptions","organizations_url":"https://api.github.com/users/Icelandjack/orgs","repos_url":"https://api.github.com/users/Icelandjack/repos","events_url":"https://api.github.com/users/Icelandjack/events{/privacy}","received_events_url":"https://api.github.com/users/Icelandjack/received_events","type":"User","site_admin":false},"created_at":"2017-08-28T16:31:03Z","updated_at":"2017-08-28T16:31:03Z","body":"Not really a proposal"}}
{"actor":{"display_login":"Icelandjack"}}