{"action":"created","issue":{"url":"https://api.github.com/repos/purescript/purescript/issues/2023","repository_url":"https://api.github.com/repos/purescript/purescript","labels_url":"https://api.github.com/repos/purescript/purescript/issues/2023/labels{/name}","comments_url":"https://api.github.com/repos/purescript/purescript/issues/2023/comments","events_url":"https://api.github.com/repos/purescript/purescript/issues/2023/events","html_url":"https://github.com/purescript/purescript/pull/2023","id":148872640,"number":2023,"title":"Typed holes","user":{"login":"garyb","id":693642,"avatar_url":"https://avatars.githubusercontent.com/u/693642?v=3","gravatar_id":"","url":"https://api.github.com/users/garyb","html_url":"https://github.com/garyb","followers_url":"https://api.github.com/users/garyb/followers","following_url":"https://api.github.com/users/garyb/following{/other_user}","gists_url":"https://api.github.com/users/garyb/gists{/gist_id}","starred_url":"https://api.github.com/users/garyb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garyb/subscriptions","organizations_url":"https://api.github.com/users/garyb/orgs","repos_url":"https://api.github.com/users/garyb/repos","events_url":"https://api.github.com/users/garyb/events{/privacy}","received_events_url":"https://api.github.com/users/garyb/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/purescript/purescript/labels/ready%20for%20review","name":"ready for review","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":24,"created_at":"2016-04-16T17:28:09Z","updated_at":"2016-04-17T20:06:01Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/purescript/purescript/pulls/2023","html_url":"https://github.com/purescript/purescript/pull/2023","diff_url":"https://github.com/purescript/purescript/pull/2023.diff","patch_url":"https://github.com/purescript/purescript/pull/2023.patch"},"body":"Will resolve #1283.\r\n\r\nThis works up to the point where it only warns instead of errors when a hole is encountered (I want the error to happen after we're done with all the modules in typechecking, so poking around in `Make` to do so right now), but I figured we may want to talk about syntax.\r\n\r\nCurrently any identifier that is prefixed with `?` is considered a hole. This means we're in whitespace-aware territory, and I had to make it happen in the lexer. I don't feel too bad about that at all, because this is going to be awesome :wink:, but thought I'd open it for discussion anyway. The identifier part is used in the error message, so you get a message like:\r\n\r\n```\r\nType hole 'ummm' has the inferred type:\r\n ...\r\n```\r\n\r\nOur choices seem to be either do it this way, or we'll have to introduce a new reserved symbol or name to make it happen."},"comment":{"url":"https://api.github.com/repos/purescript/purescript/issues/comments/211104118","html_url":"https://github.com/purescript/purescript/pull/2023#issuecomment-211104118","issue_url":"https://api.github.com/repos/purescript/purescript/issues/2023","id":211104118,"user":{"login":"garyb","id":693642,"avatar_url":"https://avatars.githubusercontent.com/u/693642?v=3","gravatar_id":"","url":"https://api.github.com/users/garyb","html_url":"https://github.com/garyb","followers_url":"https://api.github.com/users/garyb/followers","following_url":"https://api.github.com/users/garyb/following{/other_user}","gists_url":"https://api.github.com/users/garyb/gists{/gist_id}","starred_url":"https://api.github.com/users/garyb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garyb/subscriptions","organizations_url":"https://api.github.com/users/garyb/orgs","repos_url":"https://api.github.com/users/garyb/repos","events_url":"https://api.github.com/users/garyb/events{/privacy}","received_events_url":"https://api.github.com/users/garyb/received_events","type":"User","site_admin":false},"created_at":"2016-04-17T20:06:01Z","updated_at":"2016-04-17T20:06:01Z","body":"I wondered about that, I tried constructing a few cases to see if I could get a bad type back, but it seemed that this was enough."}}