{"action":"created","issue":{"url":"https://api.github.com/repos/sviperll/adt4j/issues/15","labels_url":"https://api.github.com/repos/sviperll/adt4j/issues/15/labels{/name}","comments_url":"https://api.github.com/repos/sviperll/adt4j/issues/15/comments","events_url":"https://api.github.com/repos/sviperll/adt4j/issues/15/events","html_url":"https://github.com/sviperll/adt4j/issues/15","id":57316085,"number":15,"title":"Add support for Generalized Algebraic Data Types","user":{"login":"jbgi","id":221929,"avatar_url":"https://avatars.githubusercontent.com/u/221929?v=3","gravatar_id":"","url":"https://api.github.com/users/jbgi","html_url":"https://github.com/jbgi","followers_url":"https://api.github.com/users/jbgi/followers","following_url":"https://api.github.com/users/jbgi/following{/other_user}","gists_url":"https://api.github.com/users/jbgi/gists{/gist_id}","starred_url":"https://api.github.com/users/jbgi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbgi/subscriptions","organizations_url":"https://api.github.com/users/jbgi/orgs","repos_url":"https://api.github.com/users/jbgi/repos","events_url":"https://api.github.com/users/jbgi/events{/privacy}","received_events_url":"https://api.github.com/users/jbgi/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/sviperll/adt4j/labels/research","name":"research","color":"5319e7"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":16,"created_at":"2015-02-11T13:34:53Z","updated_at":"2016-02-01T10:05:49Z","closed_at":null,"body":"This probably requires a new specialized annotation, but it would be really cool if adt4j could help to define GADTs in Java!\r\nThis is what I am after: https://gist.github.com/jbgi/208a1733f15cdcf78eb5\r\n"},"comment":{"url":"https://api.github.com/repos/sviperll/adt4j/issues/comments/177887898","html_url":"https://github.com/sviperll/adt4j/issues/15#issuecomment-177887898","issue_url":"https://api.github.com/repos/sviperll/adt4j/issues/15","id":177887898,"user":{"login":"sviperll","id":53340,"avatar_url":"https://avatars.githubusercontent.com/u/53340?v=3","gravatar_id":"","url":"https://api.github.com/users/sviperll","html_url":"https://github.com/sviperll","followers_url":"https://api.github.com/users/sviperll/followers","following_url":"https://api.github.com/users/sviperll/following{/other_user}","gists_url":"https://api.github.com/users/sviperll/gists{/gist_id}","starred_url":"https://api.github.com/users/sviperll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sviperll/subscriptions","organizations_url":"https://api.github.com/users/sviperll/orgs","repos_url":"https://api.github.com/users/sviperll/repos","events_url":"https://api.github.com/users/sviperll/events{/privacy}","received_events_url":"https://api.github.com/users/sviperll/received_events","type":"User","site_admin":false},"created_at":"2016-02-01T10:05:49Z","updated_at":"2016-02-01T10:05:49Z","body":"I was actually talking about native HK support by Java compiler...\r\n\r\nYear, I know about marker-interface solution, but I don't like it\r\n\r\n * it lacks static guarantees;\r\n * inheritance story is somewhat ugly...\r\n * it requires correct implementation of narrow and even though we can generate it in adt4 or derive4j, we may what to implement HK for custom class or even some externally defined class...\r\n\r\nWhat do you think about about generating single TypeEquality class with functions for each required type-constructor?"}}