{"action":"created","comment":{"url":"https://api.github.com/repos/seqan/seqan3/pulls/comments/233029690","pull_request_review_id":174350530,"id":233029690,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzMzAyOTY5MA==","diff_hunk":"@@ -54,10 +51,14 @@\n namespace seqan3\n {\n \n+struct rna5;","path":"include/seqan3/alphabet/nucleotide/dna5.hpp","position":26,"original_position":26,"commit_id":"e7d1145235e7ac583b6a1d229ace8c45b455f09f","original_commit_id":"238067e444918fd257a8ac054f2af66b8e28e8f6","user":{"login":"smehringer","id":7955878,"node_id":"MDQ6VXNlcjc5NTU4Nzg=","avatar_url":"https://avatars3.githubusercontent.com/u/7955878?v=4","gravatar_id":"","url":"https://api.github.com/users/smehringer","html_url":"https://github.com/smehringer","followers_url":"https://api.github.com/users/smehringer/followers","following_url":"https://api.github.com/users/smehringer/following{/other_user}","gists_url":"https://api.github.com/users/smehringer/gists{/gist_id}","starred_url":"https://api.github.com/users/smehringer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smehringer/subscriptions","organizations_url":"https://api.github.com/users/smehringer/orgs","repos_url":"https://api.github.com/users/smehringer/repos","events_url":"https://api.github.com/users/smehringer/events{/privacy}","received_events_url":"https://api.github.com/users/smehringer/received_events","type":"User","site_admin":false},"body":"If `dna4` is a class now why is `rna4` a struct still?","created_at":"2018-11-13T13:09:07Z","updated_at":"2018-11-13T13:48:43Z","html_url":"https://github.com/seqan/seqan3/pull/535#discussion_r233029690","pull_request_url":"https://api.github.com/repos/seqan/seqan3/pulls/535","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/seqan/seqan3/pulls/comments/233029690"},"html":{"href":"https://github.com/seqan/seqan3/pull/535#discussion_r233029690"},"pull_request":{"href":"https://api.github.com/repos/seqan/seqan3/pulls/535"}}},"pull_request":{"url":"https://api.github.com/repos/seqan/seqan3/pulls/535","id":227691995,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI3NjkxOTk1","html_url":"https://github.com/seqan/seqan3/pull/535","diff_url":"https://github.com/seqan/seqan3/pull/535.diff","patch_url":"https://github.com/seqan/seqan3/pull/535.patch","issue_url":"https://api.github.com/repos/seqan/seqan3/issues/535","number":535,"state":"open","locked":false,"title":"Refactoring of alphabets","user":{"login":"h-2","id":2996863,"node_id":"MDQ6VXNlcjI5OTY4NjM=","avatar_url":"https://avatars2.githubusercontent.com/u/2996863?v=4","gravatar_id":"","url":"https://api.github.com/users/h-2","html_url":"https://github.com/h-2","followers_url":"https://api.github.com/users/h-2/followers","following_url":"https://api.github.com/users/h-2/following{/other_user}","gists_url":"https://api.github.com/users/h-2/gists{/gist_id}","starred_url":"https://api.github.com/users/h-2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/h-2/subscriptions","organizations_url":"https://api.github.com/users/h-2/orgs","repos_url":"https://api.github.com/users/h-2/repos","events_url":"https://api.github.com/users/h-2/events{/privacy}","received_events_url":"https://api.github.com/users/h-2/received_events","type":"User","site_admin":false},"body":"## major refactorisation of all alphabets\r\n\r\n- there are now alphabet base classes that our alphabets inherit from, this reduces code duplication\r\n- alphabets are no longer aggregate types fixing some weird issues\r\n- our alphabets are still PODs although this is not required by the alphabet_concept anymore\r\n- `constexpr` default construction has been fixed everywhere\r\n- cartesian composition no longer inherits pod_tuple, but actually compresses into a single rank value\r\n  - `gapped<dna5>` now consumes one byte, not two\r\n  - all operations are now constant time, not linear in the number of elements\r\n- introduction of alphabet_proxy, a generic proxy base that also models the concepts of it's emulated type\r\n- fixed a heap of bugs I found on the way\r\n\r\n## Reviews:\r\n\r\n- @joshuak94 can you review the changes to the mask alphabet and gap?\r\n- @sarahet can you review the changes regarding the amino acids? It's not much ;)\r\n- @joergi-w can you review the changes to the structure alphabets and the dna alphabets?\r\n- @mariehoffmann can you review the changes to the qualities?\r\n- @smehringer @marehr Can you review rest, in particular the changes to cartesian_composition and the alphabet_proxy?\r\n\r\nFollow-Up TODOs:\r\n  - [ ] investigate the two ICEs\r\n  - [ ] make union_composition require the same char_type on alternatives\r\n  - [ ] rename `composition` module to `composite`\r\n  - [ ] rename `cartesian_composition` to `alphabet_tuple`\r\n  - [ ] rename `union_composition` to `alphabet_variant`\r\n  - [ ] implement `alphabet_any`\r\n","created_at":"2018-11-01T17:12:35Z","updated_at":"2018-11-13T13:48:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e3f86e360840aeba330cd720ad0c32fce3880913","assignee":{"login":"rrahn","id":1529364,"node_id":"MDQ6VXNlcjE1MjkzNjQ=","avatar_url":"https://avatars2.githubusercontent.com/u/1529364?v=4","gravatar_id":"","url":"https://api.github.com/users/rrahn","html_url":"https://github.com/rrahn","followers_url":"https://api.github.com/users/rrahn/followers","following_url":"https://api.github.com/users/rrahn/following{/other_user}","gists_url":"https://api.github.com/users/rrahn/gists{/gist_id}","starred_url":"https://api.github.com/users/rrahn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rrahn/subscriptions","organizations_url":"https://api.github.com/users/rrahn/orgs","repos_url":"https://api.github.com/users/rrahn/repos","events_url":"https://api.github.com/users/rrahn/events{/privacy}","received_events_url":"https://api.github.com/users/rrahn/received_events","type":"User","site_admin":false},"assignees":[{"login":"rrahn","id":1529364,"node_id":"MDQ6VXNlcjE1MjkzNjQ=","avatar_url":"https://avatars2.githubusercontent.com/u/1529364?v=4","gravatar_id":"","url":"https://api.github.com/users/rrahn","html_url":"https://github.com/rrahn","followers_url":"https://api.github.com/users/rrahn/followers","following_url":"https://api.github.com/users/rrahn/following{/other_user}","gists_url":"https://api.github.com/users/rrahn/gists{/gist_id}","starred_url":"https://api.github.com/users/rrahn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rrahn/subscriptions","organizations_url":"https://api.github.com/users/rrahn/orgs","repos_url":"https://api.github.com/users/rrahn/repos","events_url":"https://api.github.com/users/rrahn/events{/privacy}","received_events_url":"https://api.github.com/users/rrahn/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"marehr","id":103778,"node_id":"MDQ6VXNlcjEwMzc3OA==","avatar_url":"https://avatars1.githubusercontent.com/u/103778?v=4","gravatar_id":"","url":"https://api.github.com/users/marehr","html_url":"https://github.com/marehr","followers_url":"https://api.github.com/users/marehr/followers","following_url":"https://api.github.com/users/marehr/following{/other_user}","gists_url":"https://api.github.com/users/marehr/gists{/gist_id}","starred_url":"https://api.github.com/users/marehr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marehr/subscriptions","organizations_url":"https://api.github.com/users/marehr/orgs","repos_url":"https://api.github.com/users/marehr/repos","events_url":"https://api.github.com/users/marehr/events{/privacy}","received_events_url":"https://api.github.com/users/marehr/received_events","type":"User","site_admin":false},{"login":"mariehoffmann","id":4982274,"node_id":"MDQ6VXNlcjQ5ODIyNzQ=","avatar_url":"https://avatars3.githubusercontent.com/u/4982274?v=4","gravatar_id":"","url":"https://api.github.com/users/mariehoffmann","html_url":"https://github.com/mariehoffmann","followers_url":"https://api.github.com/users/mariehoffmann/followers","following_url":"https://api.github.com/users/mariehoffmann/following{/other_user}","gists_url":"https://api.github.com/users/mariehoffmann/gists{/gist_id}","starred_url":"https://api.github.com/users/mariehoffmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mariehoffmann/subscriptions","organizations_url":"https://api.github.com/users/mariehoffmann/orgs","repos_url":"https://api.github.com/users/mariehoffmann/repos","events_url":"https://api.github.com/users/mariehoffmann/events{/privacy}","received_events_url":"https://api.github.com/users/mariehoffmann/received_events","type":"User","site_admin":false},{"login":"sarahet","id":7955861,"node_id":"MDQ6VXNlcjc5NTU4NjE=","avatar_url":"https://avatars3.githubusercontent.com/u/7955861?v=4","gravatar_id":"","url":"https://api.github.com/users/sarahet","html_url":"https://github.com/sarahet","followers_url":"https://api.github.com/users/sarahet/followers","following_url":"https://api.github.com/users/sarahet/following{/other_user}","gists_url":"https://api.github.com/users/sarahet/gists{/gist_id}","starred_url":"https://api.github.com/users/sarahet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sarahet/subscriptions","organizations_url":"https://api.github.com/users/sarahet/orgs","repos_url":"https://api.github.com/users/sarahet/repos","events_url":"https://api.github.com/users/sarahet/events{/privacy}","received_events_url":"https://api.github.com/users/sarahet/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/seqan/seqan3/pulls/535/commits","review_comments_url":"https://api.github.com/repos/seqan/seqan3/pulls/535/comments","review_comment_url":"https://api.github.com/repos/seqan/seqan3/pulls/comments{/number}","comments_url":"https://api.github.com/repos/seqan/seqan3/issues/535/comments","statuses_url":"https://api.github.com/repos/seqan/seqan3/statuses/e7d1145235e7ac583b6a1d229ace8c45b455f09f","head":{"label":"h-2:refactor_alphabets","ref":"refactor_alphabets","sha":"e7d1145235e7ac583b6a1d229ace8c45b455f09f","user":{"login":"h-2","id":2996863,"node_id":"MDQ6VXNlcjI5OTY4NjM=","avatar_url":"https://avatars2.githubusercontent.com/u/2996863?v=4","gravatar_id":"","url":"https://api.github.com/users/h-2","html_url":"https://github.com/h-2","followers_url":"https://api.github.com/users/h-2/followers","following_url":"https://api.github.com/users/h-2/following{/other_user}","gists_url":"https://api.github.com/users/h-2/gists{/gist_id}","starred_url":"https://api.github.com/users/h-2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/h-2/subscriptions","organizations_url":"https://api.github.com/users/h-2/orgs","repos_url":"https://api.github.com/users/h-2/repos","events_url":"https://api.github.com/users/h-2/events{/privacy}","received_events_url":"https://api.github.com/users/h-2/received_events","type":"User","site_admin":false},"repo":{"id":86586114,"node_id":"MDEwOlJlcG9zaXRvcnk4NjU4NjExNA==","name":"seqan3","full_name":"h-2/seqan3","private":false,"owner":{"login":"h-2","id":2996863,"node_id":"MDQ6VXNlcjI5OTY4NjM=","avatar_url":"https://avatars2.githubusercontent.com/u/2996863?v=4","gravatar_id":"","url":"https://api.github.com/users/h-2","html_url":"https://github.com/h-2","followers_url":"https://api.github.com/users/h-2/followers","following_url":"https://api.github.com/users/h-2/following{/other_user}","gists_url":"https://api.github.com/users/h-2/gists{/gist_id}","starred_url":"https://api.github.com/users/h-2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/h-2/subscriptions","organizations_url":"https://api.github.com/users/h-2/orgs","repos_url":"https://api.github.com/users/h-2/repos","events_url":"https://api.github.com/users/h-2/events{/privacy}","received_events_url":"https://api.github.com/users/h-2/received_events","type":"User","site_admin":false},"html_url":"https://github.com/h-2/seqan3","description":"The modern C++ library for sequence analysis. Contains version 3 of the library and API docs.","fork":true,"url":"https://api.github.com/repos/h-2/seqan3","forks_url":"https://api.github.com/repos/h-2/seqan3/forks","keys_url":"https://api.github.com/repos/h-2/seqan3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/h-2/seqan3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/h-2/seqan3/teams","hooks_url":"https://api.github.com/repos/h-2/seqan3/hooks","issue_events_url":"https://api.github.com/repos/h-2/seqan3/issues/events{/number}","events_url":"https://api.github.com/repos/h-2/seqan3/events","assignees_url":"https://api.github.com/repos/h-2/seqan3/assignees{/user}","branches_url":"https://api.github.com/repos/h-2/seqan3/branches{/branch}","tags_url":"https://api.github.com/repos/h-2/seqan3/tags","blobs_url":"https://api.github.com/repos/h-2/seqan3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/h-2/seqan3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/h-2/seqan3/git/refs{/sha}","trees_url":"https://api.github.com/repos/h-2/seqan3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/h-2/seqan3/statuses/{sha}","languages_url":"https://api.github.com/repos/h-2/seqan3/languages","stargazers_url":"https://api.github.com/repos/h-2/seqan3/stargazers","contributors_url":"https://api.github.com/repos/h-2/seqan3/contributors","subscribers_url":"https://api.github.com/repos/h-2/seqan3/subscribers","subscription_url":"https://api.github.com/repos/h-2/seqan3/subscription","commits_url":"https://api.github.com/repos/h-2/seqan3/commits{/sha}","git_commits_url":"https://api.github.com/repos/h-2/seqan3/git/commits{/sha}","comments_url":"https://api.github.com/repos/h-2/seqan3/comments{/number}","issue_comment_url":"https://api.github.com/repos/h-2/seqan3/issues/comments{/number}","contents_url":"https://api.github.com/repos/h-2/seqan3/contents/{+path}","compare_url":"https://api.github.com/repos/h-2/seqan3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/h-2/seqan3/merges","archive_url":"https://api.github.com/repos/h-2/seqan3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/h-2/seqan3/downloads","issues_url":"https://api.github.com/repos/h-2/seqan3/issues{/number}","pulls_url":"https://api.github.com/repos/h-2/seqan3/pulls{/number}","milestones_url":"https://api.github.com/repos/h-2/seqan3/milestones{/number}","notifications_url":"https://api.github.com/repos/h-2/seqan3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/h-2/seqan3/labels{/name}","releases_url":"https://api.github.com/repos/h-2/seqan3/releases{/id}","deployments_url":"https://api.github.com/repos/h-2/seqan3/deployments","created_at":"2017-03-29T13:34:49Z","updated_at":"2018-04-15T07:31:58Z","pushed_at":"2018-11-12T16:25:37Z","git_url":"git://github.com/h-2/seqan3.git","ssh_url":"git@github.com:h-2/seqan3.git","clone_url":"https://github.com/h-2/seqan3.git","svn_url":"https://github.com/h-2/seqan3","homepage":"http://www.seqan.de","size":2187,"stargazers_count":1,"watchers_count":1,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"seqan:master","ref":"master","sha":"ffca425fecf8e2a490e1493399b866fe1c3ee689","user":{"login":"seqan","id":1752144,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3NTIxNDQ=","avatar_url":"https://avatars2.githubusercontent.com/u/1752144?v=4","gravatar_id":"","url":"https://api.github.com/users/seqan","html_url":"https://github.com/seqan","followers_url":"https://api.github.com/users/seqan/followers","following_url":"https://api.github.com/users/seqan/following{/other_user}","gists_url":"https://api.github.com/users/seqan/gists{/gist_id}","starred_url":"https://api.github.com/users/seqan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seqan/subscriptions","organizations_url":"https://api.github.com/users/seqan/orgs","repos_url":"https://api.github.com/users/seqan/repos","events_url":"https://api.github.com/users/seqan/events{/privacy}","received_events_url":"https://api.github.com/users/seqan/received_events","type":"Organization","site_admin":false},"repo":{"id":55410078,"node_id":"MDEwOlJlcG9zaXRvcnk1NTQxMDA3OA==","name":"seqan3","full_name":"seqan/seqan3","private":false,"owner":{"login":"seqan","id":1752144,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3NTIxNDQ=","avatar_url":"https://avatars2.githubusercontent.com/u/1752144?v=4","gravatar_id":"","url":"https://api.github.com/users/seqan","html_url":"https://github.com/seqan","followers_url":"https://api.github.com/users/seqan/followers","following_url":"https://api.github.com/users/seqan/following{/other_user}","gists_url":"https://api.github.com/users/seqan/gists{/gist_id}","starred_url":"https://api.github.com/users/seqan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seqan/subscriptions","organizations_url":"https://api.github.com/users/seqan/orgs","repos_url":"https://api.github.com/users/seqan/repos","events_url":"https://api.github.com/users/seqan/events{/privacy}","received_events_url":"https://api.github.com/users/seqan/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seqan/seqan3","description":"The modern C++ library for sequence analysis. Contains version 3 of the library and API docs.","fork":false,"url":"https://api.github.com/repos/seqan/seqan3","forks_url":"https://api.github.com/repos/seqan/seqan3/forks","keys_url":"https://api.github.com/repos/seqan/seqan3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seqan/seqan3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seqan/seqan3/teams","hooks_url":"https://api.github.com/repos/seqan/seqan3/hooks","issue_events_url":"https://api.github.com/repos/seqan/seqan3/issues/events{/number}","events_url":"https://api.github.com/repos/seqan/seqan3/events","assignees_url":"https://api.github.com/repos/seqan/seqan3/assignees{/user}","branches_url":"https://api.github.com/repos/seqan/seqan3/branches{/branch}","tags_url":"https://api.github.com/repos/seqan/seqan3/tags","blobs_url":"https://api.github.com/repos/seqan/seqan3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seqan/seqan3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seqan/seqan3/git/refs{/sha}","trees_url":"https://api.github.com/repos/seqan/seqan3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seqan/seqan3/statuses/{sha}","languages_url":"https://api.github.com/repos/seqan/seqan3/languages","stargazers_url":"https://api.github.com/repos/seqan/seqan3/stargazers","contributors_url":"https://api.github.com/repos/seqan/seqan3/contributors","subscribers_url":"https://api.github.com/repos/seqan/seqan3/subscribers","subscription_url":"https://api.github.com/repos/seqan/seqan3/subscription","commits_url":"https://api.github.com/repos/seqan/seqan3/commits{/sha}","git_commits_url":"https://api.github.com/repos/seqan/seqan3/git/commits{/sha}","comments_url":"https://api.github.com/repos/seqan/seqan3/comments{/number}","issue_comment_url":"https://api.github.com/repos/seqan/seqan3/issues/comments{/number}","contents_url":"https://api.github.com/repos/seqan/seqan3/contents/{+path}","compare_url":"https://api.github.com/repos/seqan/seqan3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seqan/seqan3/merges","archive_url":"https://api.github.com/repos/seqan/seqan3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seqan/seqan3/downloads","issues_url":"https://api.github.com/repos/seqan/seqan3/issues{/number}","pulls_url":"https://api.github.com/repos/seqan/seqan3/pulls{/number}","milestones_url":"https://api.github.com/repos/seqan/seqan3/milestones{/number}","notifications_url":"https://api.github.com/repos/seqan/seqan3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seqan/seqan3/labels{/name}","releases_url":"https://api.github.com/repos/seqan/seqan3/releases{/id}","deployments_url":"https://api.github.com/repos/seqan/seqan3/deployments","created_at":"2016-04-04T12:39:15Z","updated_at":"2018-11-13T10:52:56Z","pushed_at":"2018-11-13T13:20:57Z","git_url":"git://github.com/seqan/seqan3.git","ssh_url":"git@github.com:seqan/seqan3.git","clone_url":"https://github.com/seqan/seqan3.git","svn_url":"https://github.com/seqan/seqan3","homepage":"http://www.seqan.de","size":2077,"stargazers_count":38,"watchers_count":38,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":26,"mirror_url":null,"archived":false,"open_issues_count":133,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":26,"open_issues":133,"watchers":38,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/seqan/seqan3/pulls/535"},"html":{"href":"https://github.com/seqan/seqan3/pull/535"},"issue":{"href":"https://api.github.com/repos/seqan/seqan3/issues/535"},"comments":{"href":"https://api.github.com/repos/seqan/seqan3/issues/535/comments"},"review_comments":{"href":"https://api.github.com/repos/seqan/seqan3/pulls/535/comments"},"review_comment":{"href":"https://api.github.com/repos/seqan/seqan3/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/seqan/seqan3/pulls/535/commits"},"statuses":{"href":"https://api.github.com/repos/seqan/seqan3/statuses/e7d1145235e7ac583b6a1d229ace8c45b455f09f"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"smehringer"}}