{"action":"created","issue":{"url":"https://api.github.com/repos/ublubu/shapes/issues/66","repository_url":"https://api.github.com/repos/ublubu/shapes","labels_url":"https://api.github.com/repos/ublubu/shapes/issues/66/labels{/name}","comments_url":"https://api.github.com/repos/ublubu/shapes/issues/66/comments","events_url":"https://api.github.com/repos/ublubu/shapes/issues/66/events","html_url":"https://github.com/ublubu/shapes/issues/66","id":331317077,"node_id":"MDU6SXNzdWUzMzEzMTcwNzc=","number":66,"title":"How do I retain performance after switching from `ST` to `PrimMonad` typeclass?","user":{"login":"ublubu","id":4977493,"node_id":"MDQ6VXNlcjQ5Nzc0OTM=","avatar_url":"https://avatars0.githubusercontent.com/u/4977493?v=4","gravatar_id":"","url":"https://api.github.com/users/ublubu","html_url":"https://github.com/ublubu","followers_url":"https://api.github.com/users/ublubu/followers","following_url":"https://api.github.com/users/ublubu/following{/other_user}","gists_url":"https://api.github.com/users/ublubu/gists{/gist_id}","starred_url":"https://api.github.com/users/ublubu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ublubu/subscriptions","organizations_url":"https://api.github.com/users/ublubu/orgs","repos_url":"https://api.github.com/users/ublubu/repos","events_url":"https://api.github.com/users/ublubu/events{/privacy}","received_events_url":"https://api.github.com/users/ublubu/received_events","type":"User","site_admin":false},"labels":[{"id":259304242,"node_id":"MDU6TGFiZWwyNTkzMDQyNDI=","url":"https://api.github.com/repos/ublubu/shapes/labels/question","name":"question","color":"cc317c","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-06-11T19:22:39Z","updated_at":"2018-06-12T15:33:38Z","closed_at":null,"author_association":"OWNER","body":"40571263c6666eb6958114acee5a376bad549f14 <- I tried out the `PrimMonad` typeclass to make it easier to embed the engine in IO, but it absolutely wrecked performance (8x slowdown).\r\n\r\nPretty much the only change I made was to turn all the `ST s` into a `PrimMonad m`. How do library authors typically deal with this?\r\n\r\n@schell \r\n\r\nThis isn't a change I need (there are plenty of other ways to embed), but now I'm curious."},"comment":{"url":"https://api.github.com/repos/ublubu/shapes/issues/comments/396633822","html_url":"https://github.com/ublubu/shapes/issues/66#issuecomment-396633822","issue_url":"https://api.github.com/repos/ublubu/shapes/issues/66","id":396633822,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NjYzMzgyMg==","user":{"login":"schell","id":24942,"node_id":"MDQ6VXNlcjI0OTQy","avatar_url":"https://avatars3.githubusercontent.com/u/24942?v=4","gravatar_id":"","url":"https://api.github.com/users/schell","html_url":"https://github.com/schell","followers_url":"https://api.github.com/users/schell/followers","following_url":"https://api.github.com/users/schell/following{/other_user}","gists_url":"https://api.github.com/users/schell/gists{/gist_id}","starred_url":"https://api.github.com/users/schell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schell/subscriptions","organizations_url":"https://api.github.com/users/schell/orgs","repos_url":"https://api.github.com/users/schell/repos","events_url":"https://api.github.com/users/schell/events{/privacy}","received_events_url":"https://api.github.com/users/schell/received_events","type":"User","site_admin":false},"created_at":"2018-06-12T15:33:38Z","updated_at":"2018-06-12T15:33:38Z","author_association":"COLLABORATOR","body":"Yes I think `SPECIALIZE` would do it. I'm not sure how `vector` does it - though I see TONS of `INLINE` and some `INLINE_FUSE` pragmas. No `SPECIALIZE` though. Maybe it would be even faster monomorphised? "}}
{"actor":{"display_login":"schell"}}