{"action":"created","issue":{"url":"https://api.github.com/repos/ghc-proposals/ghc-proposals/issues/175","repository_url":"https://api.github.com/repos/ghc-proposals/ghc-proposals","labels_url":"https://api.github.com/repos/ghc-proposals/ghc-proposals/issues/175/labels{/name}","comments_url":"https://api.github.com/repos/ghc-proposals/ghc-proposals/issues/175/comments","events_url":"https://api.github.com/repos/ghc-proposals/ghc-proposals/issues/175/events","html_url":"https://github.com/ghc-proposals/ghc-proposals/pull/175","id":367106144,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIwNjIwMjk1","number":175,"title":"Add `liftTyped` to the `Lift` typeclass","user":{"login":"harpocrates","id":10766081,"node_id":"MDQ6VXNlcjEwNzY2MDgx","avatar_url":"https://avatars2.githubusercontent.com/u/10766081?v=4","gravatar_id":"","url":"https://api.github.com/users/harpocrates","html_url":"https://github.com/harpocrates","followers_url":"https://api.github.com/users/harpocrates/followers","following_url":"https://api.github.com/users/harpocrates/following{/other_user}","gists_url":"https://api.github.com/users/harpocrates/gists{/gist_id}","starred_url":"https://api.github.com/users/harpocrates/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/harpocrates/subscriptions","organizations_url":"https://api.github.com/users/harpocrates/orgs","repos_url":"https://api.github.com/users/harpocrates/repos","events_url":"https://api.github.com/users/harpocrates/events{/privacy}","received_events_url":"https://api.github.com/users/harpocrates/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":12,"created_at":"2018-10-05T08:17:40Z","updated_at":"2018-10-08T19:31:07Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/ghc-proposals/ghc-proposals/pulls/175","html_url":"https://github.com/ghc-proposals/ghc-proposals/pull/175","diff_url":"https://github.com/ghc-proposals/ghc-proposals/pull/175.diff","patch_url":"https://github.com/ghc-proposals/ghc-proposals/pull/175.patch"},"body":"[Rendered](https://github.com/harpocrates/ghc-proposals/blob/lift-typed/proposals/0000-lift-typed.rst)."},"comment":{"url":"https://api.github.com/repos/ghc-proposals/ghc-proposals/issues/comments/427952696","html_url":"https://github.com/ghc-proposals/ghc-proposals/pull/175#issuecomment-427952696","issue_url":"https://api.github.com/repos/ghc-proposals/ghc-proposals/issues/175","id":427952696,"node_id":"MDEyOklzc3VlQ29tbWVudDQyNzk1MjY5Ng==","user":{"login":"harpocrates","id":10766081,"node_id":"MDQ6VXNlcjEwNzY2MDgx","avatar_url":"https://avatars2.githubusercontent.com/u/10766081?v=4","gravatar_id":"","url":"https://api.github.com/users/harpocrates","html_url":"https://github.com/harpocrates","followers_url":"https://api.github.com/users/harpocrates/followers","following_url":"https://api.github.com/users/harpocrates/following{/other_user}","gists_url":"https://api.github.com/users/harpocrates/gists{/gist_id}","starred_url":"https://api.github.com/users/harpocrates/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/harpocrates/subscriptions","organizations_url":"https://api.github.com/users/harpocrates/orgs","repos_url":"https://api.github.com/users/harpocrates/repos","events_url":"https://api.github.com/users/harpocrates/events{/privacy}","received_events_url":"https://api.github.com/users/harpocrates/received_events","type":"User","site_admin":false},"created_at":"2018-10-08T19:31:07Z","updated_at":"2018-10-08T19:31:07Z","author_association":"NONE","body":"I went ahead and tried to implement option (2), following what @RyanGlScott outlines in https://github.com/ghc-proposals/ghc-proposals/pull/175#issuecomment-427611846. I have a working prototype which works fine for unlifted types, but ran into some other non-trivial issues:\r\n\r\n  1. default implementations of methods don't work (eg. `lift x = unTypeQ (liftTyped x)`), presumably since GHC would actually have to make a different `lift` method for each runtime rep\r\n  2. writing `class Lift (t :: TYPE r) where ...`, `instance Lift Int# where ...`, etc. requires having `ghc-prim` be a dependency of `template-haskell`\r\n\r\nPoint 1 might be relevant to the original proposal here; unless there is some sort of path forward towards making 1 possible, perhaps it is better to move `lift` out of the `Lift` typeclass... Thoughts?"}}
{"actor":{"display_login":"harpocrates"}}