{"action":"created","issue":{"url":"https://api.github.com/repos/haskell/bytestring/issues/69","repository_url":"https://api.github.com/repos/haskell/bytestring","labels_url":"https://api.github.com/repos/haskell/bytestring/issues/69/labels{/name}","comments_url":"https://api.github.com/repos/haskell/bytestring/issues/69/comments","events_url":"https://api.github.com/repos/haskell/bytestring/issues/69/events","html_url":"https://github.com/haskell/bytestring/issues/69","id":133394439,"number":69,"title":"Document accursedUnutterablePerformIO properly ","user":{"login":"jberryman","id":210815,"avatar_url":"https://avatars.githubusercontent.com/u/210815?v=3","gravatar_id":"","url":"https://api.github.com/users/jberryman","html_url":"https://github.com/jberryman","followers_url":"https://api.github.com/users/jberryman/followers","following_url":"https://api.github.com/users/jberryman/following{/other_user}","gists_url":"https://api.github.com/users/jberryman/gists{/gist_id}","starred_url":"https://api.github.com/users/jberryman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jberryman/subscriptions","organizations_url":"https://api.github.com/users/jberryman/orgs","repos_url":"https://api.github.com/users/jberryman/repos","events_url":"https://api.github.com/users/jberryman/events{/privacy}","received_events_url":"https://api.github.com/users/jberryman/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-02-13T03:41:19Z","updated_at":"2016-05-09T15:47:26Z","closed_at":null,"body":"The docs are very cheeky and fun but aren't very helpful. At a minimum it would enumerate some precise cases where it's safe to use (e.g. can I always do `accursedUnutterablePerformIO $ withForeignPtr fp ...`), and better would be to also summarize the dangers; the linked issues are not particularly enlightening.\r\n\r\nAlso it's not clear to me if the intent is for `accursedUnutterablePerformIO` to be deprecated or not. Obviously it's in an internal module so users can expect less stability, but it would be helpful to know as people are using it."},"comment":{"url":"https://api.github.com/repos/haskell/bytestring/issues/comments/217903778","html_url":"https://github.com/haskell/bytestring/issues/69#issuecomment-217903778","issue_url":"https://api.github.com/repos/haskell/bytestring/issues/69","id":217903778,"user":{"login":"dcoutts","id":1339423,"avatar_url":"https://avatars.githubusercontent.com/u/1339423?v=3","gravatar_id":"","url":"https://api.github.com/users/dcoutts","html_url":"https://github.com/dcoutts","followers_url":"https://api.github.com/users/dcoutts/followers","following_url":"https://api.github.com/users/dcoutts/following{/other_user}","gists_url":"https://api.github.com/users/dcoutts/gists{/gist_id}","starred_url":"https://api.github.com/users/dcoutts/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcoutts/subscriptions","organizations_url":"https://api.github.com/users/dcoutts/orgs","repos_url":"https://api.github.com/users/dcoutts/repos","events_url":"https://api.github.com/users/dcoutts/events{/privacy}","received_events_url":"https://api.github.com/users/dcoutts/received_events","type":"User","site_admin":false},"created_at":"2016-05-09T15:47:26Z","updated_at":"2016-05-09T15:47:26Z","body":"Mmm. My intention of \"documenting\" it was to encourage people *not* to use it (I'd seen people use it without realising). To give people a proper understanding of it reqires quite a bit of effort. I'd consider a PR though.\r\n\r\nAs for deprecated, no it's not deprecated. The export list says:\r\n```\r\n        -- * Deprecated and unmentionable\r\n        accursedUnutterablePerformIO, -- :: IO a -> a\r\n        inlinePerformIO               -- :: IO a -> a\r\n```\r\nbecause in this section is one thing that's deprecated and one thing that's unmentionable, not that both are both. Could change that 'and' to an 'or' :-)"}}