{"action":"created","issue":{"url":"https://api.github.com/repos/diagrams/diagrams-core/issues/84","labels_url":"https://api.github.com/repos/diagrams/diagrams-core/issues/84/labels{/name}","comments_url":"https://api.github.com/repos/diagrams/diagrams-core/issues/84/comments","events_url":"https://api.github.com/repos/diagrams/diagrams-core/issues/84/events","html_url":"https://github.com/diagrams/diagrams-core/issues/84","id":66243011,"number":84,"title":"Attributes arn't type safe","user":{"login":"cchalmers","id":1354887,"avatar_url":"https://avatars.githubusercontent.com/u/1354887?v=3","gravatar_id":"","url":"https://api.github.com/users/cchalmers","html_url":"https://github.com/cchalmers","followers_url":"https://api.github.com/users/cchalmers/followers","following_url":"https://api.github.com/users/cchalmers/following{/other_user}","gists_url":"https://api.github.com/users/cchalmers/gists{/gist_id}","starred_url":"https://api.github.com/users/cchalmers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cchalmers/subscriptions","organizations_url":"https://api.github.com/users/cchalmers/orgs","repos_url":"https://api.github.com/users/cchalmers/repos","events_url":"https://api.github.com/users/cchalmers/events{/privacy}","received_events_url":"https://api.github.com/users/cchalmers/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-04-03T22:58:42Z","updated_at":"2015-04-22T21:24:46Z","closed_at":null,"body":"There's three different types of Attribute but all attributes can be used with the standard `Attribute`.\r\n\r\nIt's an easy mistake to wrap up an attribute incorrectly, I've seen (and done) it a few times. After spending over an hour debugging to find out `splitAttr` does this too I want this to be fixed :)\r\n\r\nOne way is to use data kinds:\r\n\r\n```\r\ndata AttrKind = Attr | MAttr | TAttr\r\n\r\nclass AttributesClass where\r\n  type AttrType :: AttrKind\r\n\r\napplyAttribute :: (AttributeClass a, AttrType a ~ Attr, HasStyle d) => a -> d -> d\r\napplyTAttribute :: (AttributeClass a, AttrType a ~ TAttr, HasStyle d) => a -> d -> d\r\natAttr :: (AttributeClass a, AttrType a ~ Attr) :: Lens' (Style v n) (Maybe a)\r\n```\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/diagrams/diagrams-core/issues/comments/95341655","html_url":"https://github.com/diagrams/diagrams-core/issues/84#issuecomment-95341655","issue_url":"https://api.github.com/repos/diagrams/diagrams-core/issues/84","id":95341655,"user":{"login":"jeffreyrosenbluth","id":1226936,"avatar_url":"https://avatars.githubusercontent.com/u/1226936?v=3","gravatar_id":"","url":"https://api.github.com/users/jeffreyrosenbluth","html_url":"https://github.com/jeffreyrosenbluth","followers_url":"https://api.github.com/users/jeffreyrosenbluth/followers","following_url":"https://api.github.com/users/jeffreyrosenbluth/following{/other_user}","gists_url":"https://api.github.com/users/jeffreyrosenbluth/gists{/gist_id}","starred_url":"https://api.github.com/users/jeffreyrosenbluth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeffreyrosenbluth/subscriptions","organizations_url":"https://api.github.com/users/jeffreyrosenbluth/orgs","repos_url":"https://api.github.com/users/jeffreyrosenbluth/repos","events_url":"https://api.github.com/users/jeffreyrosenbluth/events{/privacy}","received_events_url":"https://api.github.com/users/jeffreyrosenbluth/received_events","type":"User","site_admin":false},"created_at":"2015-04-22T21:24:46Z","updated_at":"2015-04-22T21:24:46Z","body":"I wonder if it makes sense to try and merge master into dynamic. Or if it's easier just to start from scratch. @cchalmers before you do any more work on it, we should see if there is a consensus amongst the team. If I remember correctly, when I wrote this others were leaning towards keeping the b"}}