{"action":"opened","issue":{"url":"https://api.github.com/repos/kowainik/typerep-map/issues/43","repository_url":"https://api.github.com/repos/kowainik/typerep-map","labels_url":"https://api.github.com/repos/kowainik/typerep-map/issues/43/labels{/name}","comments_url":"https://api.github.com/repos/kowainik/typerep-map/issues/43/comments","events_url":"https://api.github.com/repos/kowainik/typerep-map/issues/43/events","html_url":"https://github.com/kowainik/typerep-map/issues/43","id":340156699,"node_id":"MDU6SXNzdWUzNDAxNTY2OTk=","number":43,"title":"Feature request: hoistM and toList/fromList","user":{"login":"NCrashed","id":2116167,"node_id":"MDQ6VXNlcjIxMTYxNjc=","avatar_url":"https://avatars1.githubusercontent.com/u/2116167?v=4","gravatar_id":"","url":"https://api.github.com/users/NCrashed","html_url":"https://github.com/NCrashed","followers_url":"https://api.github.com/users/NCrashed/followers","following_url":"https://api.github.com/users/NCrashed/following{/other_user}","gists_url":"https://api.github.com/users/NCrashed/gists{/gist_id}","starred_url":"https://api.github.com/users/NCrashed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NCrashed/subscriptions","organizations_url":"https://api.github.com/users/NCrashed/orgs","repos_url":"https://api.github.com/users/NCrashed/repos","events_url":"https://api.github.com/users/NCrashed/events{/privacy}","received_events_url":"https://api.github.com/users/NCrashed/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-07-11T09:13:04Z","updated_at":"2018-07-11T09:13:04Z","closed_at":null,"author_association":"NONE","body":"Hi, I would like to have additional helpers for the library:\r\n\r\n``` haskell\r\n-- Usecase: operations with map in custom monads\r\nhoistM :: Applicative t => (forall x. f x -> t (g x)) -> TypeRepMap f -> t (TypeRepMap g) \r\n\r\n-- I don't sure that code below is the best design, but it should represent the main idea \r\n-- Usecase: serelisation/deserialisation for aeson \r\nnetype Wrapper f = Wrapper { unWrapper :: forall x . f x }\r\ntoList :: TypeRepMap f -> [Wrapper f]\r\nfromList :: [Wrapper f] -> TypeRepMap f\r\n```"}}
{"actor":{"display_login":"NCrashed"}}