{"action":"created","comment":{"url":"https://api.github.com/repos/wandernauta/viskell/pulls/comments/47161611","id":47161611,"diff_hunk":"@@ -79,23 +98,42 @@ private ConcreteType get() {\n \n         /**\n          * @throws IllegalStateException when is isPresent() is true\n+         * @throws HaskellTypeError if this type variable is rigid\n          * @param The new instance of this type.\n          */\n-        private void set(ConcreteType type) {\n+        private void set(ConcreteType type) throws HaskellTypeError {\n             if (this.type != null) {\n                 throw new IllegalStateException(\"Type instance already set\");\n             }\n             \n+            if (this.isRigid) {\n+                throw new HaskellTypeError(\"Can not unify a rigid type variable \" + this.name + \" with concrete type \" + this.type.prettyPrint());\n+            }\n+            \n             this.type = type;\n         }\n \n         /**\n          * Deeply unifying all aspects of type instances\n          * @param the other type instance.\n-         * @throws HaskellTypeError if the combined constraint set of the typeva instances is not satisfiable.\n+         * @throws HaskellTypeError if the combined constraint set of the typevar instances is not satisfiable.\n+         * @throws HaskellTypeError if a rigid type variable gets unified with more constraints or another rigid type variable\n          */\n         private void unifyWith(TypeInstance other) throws HaskellTypeError {\n+            if (this == other) {","path":"Code/src/main/java/nl/utwente/viskell/haskell/type/TypeVar.java","position":80,"original_position":80,"commit_id":"ea19f6f066d7342e5b01c0b3578c7b76e4f828b0","original_commit_id":"ea19f6f066d7342e5b01c0b3578c7b76e4f828b0","user":{"login":"Flumble","id":904938,"avatar_url":"https://avatars.githubusercontent.com/u/904938?v=3","gravatar_id":"","url":"https://api.github.com/users/Flumble","html_url":"https://github.com/Flumble","followers_url":"https://api.github.com/users/Flumble/followers","following_url":"https://api.github.com/users/Flumble/following{/other_user}","gists_url":"https://api.github.com/users/Flumble/gists{/gist_id}","starred_url":"https://api.github.com/users/Flumble/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Flumble/subscriptions","organizations_url":"https://api.github.com/users/Flumble/orgs","repos_url":"https://api.github.com/users/Flumble/repos","events_url":"https://api.github.com/users/Flumble/events{/privacy}","received_events_url":"https://api.github.com/users/Flumble/received_events","type":"User","site_admin":false},"body":"If both are rigid and isomorphic, they shouldn't produce an exception, right? A rigid ::a and ::b can live happily together.","created_at":"2015-12-09T22:22:07Z","updated_at":"2015-12-09T22:22:07Z","html_url":"https://github.com/wandernauta/viskell/pull/305#discussion_r47161611","pull_request_url":"https://api.github.com/repos/wandernauta/viskell/pulls/305","_links":{"self":{"href":"https://api.github.com/repos/wandernauta/viskell/pulls/comments/47161611"},"html":{"href":"https://github.com/wandernauta/viskell/pull/305#discussion_r47161611"},"pull_request":{"href":"https://api.github.com/repos/wandernauta/viskell/pulls/305"}}},"pull_request":{"url":"https://api.github.com/repos/wandernauta/viskell/pulls/305","id":53185267,"html_url":"https://github.com/wandernauta/viskell/pull/305","diff_url":"https://github.com/wandernauta/viskell/pull/305.diff","patch_url":"https://github.com/wandernauta/viskell/pull/305.patch","issue_url":"https://api.github.com/repos/wandernauta/viskell/issues/305","number":305,"state":"open","locked":false,"title":"Add the concept of rigid typevars for enforcing polymorpic signatures","user":{"login":"comonoidial","id":14928502,"avatar_url":"https://avatars.githubusercontent.com/u/14928502?v=3","gravatar_id":"","url":"https://api.github.com/users/comonoidial","html_url":"https://github.com/comonoidial","followers_url":"https://api.github.com/users/comonoidial/followers","following_url":"https://api.github.com/users/comonoidial/following{/other_user}","gists_url":"https://api.github.com/users/comonoidial/gists{/gist_id}","starred_url":"https://api.github.com/users/comonoidial/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/comonoidial/subscriptions","organizations_url":"https://api.github.com/users/comonoidial/orgs","repos_url":"https://api.github.com/users/comonoidial/repos","events_url":"https://api.github.com/users/comonoidial/events{/privacy}","received_events_url":"https://api.github.com/users/comonoidial/received_events","type":"User","site_admin":false},"body":"This resolves #301 ","created_at":"2015-12-09T22:07:09Z","updated_at":"2015-12-09T22:22:07Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c2669b05f2c8404bc908807362c9ff123d2f48b9","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/wandernauta/viskell/pulls/305/commits","review_comments_url":"https://api.github.com/repos/wandernauta/viskell/pulls/305/comments","review_comment_url":"https://api.github.com/repos/wandernauta/viskell/pulls/comments{/number}","comments_url":"https://api.github.com/repos/wandernauta/viskell/issues/305/comments","statuses_url":"https://api.github.com/repos/wandernauta/viskell/statuses/ea19f6f066d7342e5b01c0b3578c7b76e4f828b0","head":{"label":"wandernauta:rigidtypevars","ref":"rigidtypevars","sha":"ea19f6f066d7342e5b01c0b3578c7b76e4f828b0","user":{"login":"wandernauta","id":126832,"avatar_url":"https://avatars.githubusercontent.com/u/126832?v=3","gravatar_id":"","url":"https://api.github.com/users/wandernauta","html_url":"https://github.com/wandernauta","followers_url":"https://api.github.com/users/wandernauta/followers","following_url":"https://api.github.com/users/wandernauta/following{/other_user}","gists_url":"https://api.github.com/users/wandernauta/gists{/gist_id}","starred_url":"https://api.github.com/users/wandernauta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wandernauta/subscriptions","organizations_url":"https://api.github.com/users/wandernauta/orgs","repos_url":"https://api.github.com/users/wandernauta/repos","events_url":"https://api.github.com/users/wandernauta/events{/privacy}","received_events_url":"https://api.github.com/users/wandernauta/received_events","type":"User","site_admin":false},"repo":{"id":30242992,"name":"viskell","full_name":"wandernauta/viskell","owner":{"login":"wandernauta","id":126832,"avatar_url":"https://avatars.githubusercontent.com/u/126832?v=3","gravatar_id":"","url":"https://api.github.com/users/wandernauta","html_url":"https://github.com/wandernauta","followers_url":"https://api.github.com/users/wandernauta/followers","following_url":"https://api.github.com/users/wandernauta/following{/other_user}","gists_url":"https://api.github.com/users/wandernauta/gists{/gist_id}","starred_url":"https://api.github.com/users/wandernauta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wandernauta/subscriptions","organizations_url":"https://api.github.com/users/wandernauta/orgs","repos_url":"https://api.github.com/users/wandernauta/repos","events_url":"https://api.github.com/users/wandernauta/events{/privacy}","received_events_url":"https://api.github.com/users/wandernauta/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/wandernauta/viskell","description":"Visual programming meets Haskell","fork":false,"url":"https://api.github.com/repos/wandernauta/viskell","forks_url":"https://api.github.com/repos/wandernauta/viskell/forks","keys_url":"https://api.github.com/repos/wandernauta/viskell/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wandernauta/viskell/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wandernauta/viskell/teams","hooks_url":"https://api.github.com/repos/wandernauta/viskell/hooks","issue_events_url":"https://api.github.com/repos/wandernauta/viskell/issues/events{/number}","events_url":"https://api.github.com/repos/wandernauta/viskell/events","assignees_url":"https://api.github.com/repos/wandernauta/viskell/assignees{/user}","branches_url":"https://api.github.com/repos/wandernauta/viskell/branches{/branch}","tags_url":"https://api.github.com/repos/wandernauta/viskell/tags","blobs_url":"https://api.github.com/repos/wandernauta/viskell/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wandernauta/viskell/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wandernauta/viskell/git/refs{/sha}","trees_url":"https://api.github.com/repos/wandernauta/viskell/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wandernauta/viskell/statuses/{sha}","languages_url":"https://api.github.com/repos/wandernauta/viskell/languages","stargazers_url":"https://api.github.com/repos/wandernauta/viskell/stargazers","contributors_url":"https://api.github.com/repos/wandernauta/viskell/contributors","subscribers_url":"https://api.github.com/repos/wandernauta/viskell/subscribers","subscription_url":"https://api.github.com/repos/wandernauta/viskell/subscription","commits_url":"https://api.github.com/repos/wandernauta/viskell/commits{/sha}","git_commits_url":"https://api.github.com/repos/wandernauta/viskell/git/commits{/sha}","comments_url":"https://api.github.com/repos/wandernauta/viskell/comments{/number}","issue_comment_url":"https://api.github.com/repos/wandernauta/viskell/issues/comments{/number}","contents_url":"https://api.github.com/repos/wandernauta/viskell/contents/{+path}","compare_url":"https://api.github.com/repos/wandernauta/viskell/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wandernauta/viskell/merges","archive_url":"https://api.github.com/repos/wandernauta/viskell/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wandernauta/viskell/downloads","issues_url":"https://api.github.com/repos/wandernauta/viskell/issues{/number}","pulls_url":"https://api.github.com/repos/wandernauta/viskell/pulls{/number}","milestones_url":"https://api.github.com/repos/wandernauta/viskell/milestones{/number}","notifications_url":"https://api.github.com/repos/wandernauta/viskell/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wandernauta/viskell/labels{/name}","releases_url":"https://api.github.com/repos/wandernauta/viskell/releases{/id}","created_at":"2015-02-03T13:04:49Z","updated_at":"2015-11-05T14:25:30Z","pushed_at":"2015-12-09T22:08:50Z","git_url":"git://github.com/wandernauta/viskell.git","ssh_url":"git@github.com:wandernauta/viskell.git","clone_url":"https://github.com/wandernauta/viskell.git","svn_url":"https://github.com/wandernauta/viskell","homepage":"","size":6133,"stargazers_count":2,"watchers_count":2,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":35,"forks":0,"open_issues":35,"watchers":2,"default_branch":"master"}},"base":{"label":"wandernauta:master","ref":"master","sha":"1af5b84fbe92ef695a31ac72dfa11eaeb5021328","user":{"login":"wandernauta","id":126832,"avatar_url":"https://avatars.githubusercontent.com/u/126832?v=3","gravatar_id":"","url":"https://api.github.com/users/wandernauta","html_url":"https://github.com/wandernauta","followers_url":"https://api.github.com/users/wandernauta/followers","following_url":"https://api.github.com/users/wandernauta/following{/other_user}","gists_url":"https://api.github.com/users/wandernauta/gists{/gist_id}","starred_url":"https://api.github.com/users/wandernauta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wandernauta/subscriptions","organizations_url":"https://api.github.com/users/wandernauta/orgs","repos_url":"https://api.github.com/users/wandernauta/repos","events_url":"https://api.github.com/users/wandernauta/events{/privacy}","received_events_url":"https://api.github.com/users/wandernauta/received_events","type":"User","site_admin":false},"repo":{"id":30242992,"name":"viskell","full_name":"wandernauta/viskell","owner":{"login":"wandernauta","id":126832,"avatar_url":"https://avatars.githubusercontent.com/u/126832?v=3","gravatar_id":"","url":"https://api.github.com/users/wandernauta","html_url":"https://github.com/wandernauta","followers_url":"https://api.github.com/users/wandernauta/followers","following_url":"https://api.github.com/users/wandernauta/following{/other_user}","gists_url":"https://api.github.com/users/wandernauta/gists{/gist_id}","starred_url":"https://api.github.com/users/wandernauta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wandernauta/subscriptions","organizations_url":"https://api.github.com/users/wandernauta/orgs","repos_url":"https://api.github.com/users/wandernauta/repos","events_url":"https://api.github.com/users/wandernauta/events{/privacy}","received_events_url":"https://api.github.com/users/wandernauta/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/wandernauta/viskell","description":"Visual programming meets Haskell","fork":false,"url":"https://api.github.com/repos/wandernauta/viskell","forks_url":"https://api.github.com/repos/wandernauta/viskell/forks","keys_url":"https://api.github.com/repos/wandernauta/viskell/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wandernauta/viskell/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wandernauta/viskell/teams","hooks_url":"https://api.github.com/repos/wandernauta/viskell/hooks","issue_events_url":"https://api.github.com/repos/wandernauta/viskell/issues/events{/number}","events_url":"https://api.github.com/repos/wandernauta/viskell/events","assignees_url":"https://api.github.com/repos/wandernauta/viskell/assignees{/user}","branches_url":"https://api.github.com/repos/wandernauta/viskell/branches{/branch}","tags_url":"https://api.github.com/repos/wandernauta/viskell/tags","blobs_url":"https://api.github.com/repos/wandernauta/viskell/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wandernauta/viskell/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wandernauta/viskell/git/refs{/sha}","trees_url":"https://api.github.com/repos/wandernauta/viskell/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wandernauta/viskell/statuses/{sha}","languages_url":"https://api.github.com/repos/wandernauta/viskell/languages","stargazers_url":"https://api.github.com/repos/wandernauta/viskell/stargazers","contributors_url":"https://api.github.com/repos/wandernauta/viskell/contributors","subscribers_url":"https://api.github.com/repos/wandernauta/viskell/subscribers","subscription_url":"https://api.github.com/repos/wandernauta/viskell/subscription","commits_url":"https://api.github.com/repos/wandernauta/viskell/commits{/sha}","git_commits_url":"https://api.github.com/repos/wandernauta/viskell/git/commits{/sha}","comments_url":"https://api.github.com/repos/wandernauta/viskell/comments{/number}","issue_comment_url":"https://api.github.com/repos/wandernauta/viskell/issues/comments{/number}","contents_url":"https://api.github.com/repos/wandernauta/viskell/contents/{+path}","compare_url":"https://api.github.com/repos/wandernauta/viskell/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wandernauta/viskell/merges","archive_url":"https://api.github.com/repos/wandernauta/viskell/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wandernauta/viskell/downloads","issues_url":"https://api.github.com/repos/wandernauta/viskell/issues{/number}","pulls_url":"https://api.github.com/repos/wandernauta/viskell/pulls{/number}","milestones_url":"https://api.github.com/repos/wandernauta/viskell/milestones{/number}","notifications_url":"https://api.github.com/repos/wandernauta/viskell/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wandernauta/viskell/labels{/name}","releases_url":"https://api.github.com/repos/wandernauta/viskell/releases{/id}","created_at":"2015-02-03T13:04:49Z","updated_at":"2015-11-05T14:25:30Z","pushed_at":"2015-12-09T22:08:50Z","git_url":"git://github.com/wandernauta/viskell.git","ssh_url":"git@github.com:wandernauta/viskell.git","clone_url":"https://github.com/wandernauta/viskell.git","svn_url":"https://github.com/wandernauta/viskell","homepage":"","size":6133,"stargazers_count":2,"watchers_count":2,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":35,"forks":0,"open_issues":35,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/wandernauta/viskell/pulls/305"},"html":{"href":"https://github.com/wandernauta/viskell/pull/305"},"issue":{"href":"https://api.github.com/repos/wandernauta/viskell/issues/305"},"comments":{"href":"https://api.github.com/repos/wandernauta/viskell/issues/305/comments"},"review_comments":{"href":"https://api.github.com/repos/wandernauta/viskell/pulls/305/comments"},"review_comment":{"href":"https://api.github.com/repos/wandernauta/viskell/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/wandernauta/viskell/pulls/305/commits"},"statuses":{"href":"https://api.github.com/repos/wandernauta/viskell/statuses/ea19f6f066d7342e5b01c0b3578c7b76e4f828b0"}}}}