{"action":"created","issue":{"url":"https://api.github.com/repos/non/cats/issues/434","labels_url":"https://api.github.com/repos/non/cats/issues/434/labels{/name}","comments_url":"https://api.github.com/repos/non/cats/issues/434/comments","events_url":"https://api.github.com/repos/non/cats/issues/434/events","html_url":"https://github.com/non/cats/issues/434","id":99432018,"number":434,"title":"Consider making transformer types non-final","user":{"login":"milessabin","id":131183,"avatar_url":"https://avatars.githubusercontent.com/u/131183?v=3","gravatar_id":"","url":"https://api.github.com/users/milessabin","html_url":"https://github.com/milessabin","followers_url":"https://api.github.com/users/milessabin/followers","following_url":"https://api.github.com/users/milessabin/following{/other_user}","gists_url":"https://api.github.com/users/milessabin/gists{/gist_id}","starred_url":"https://api.github.com/users/milessabin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/milessabin/subscriptions","organizations_url":"https://api.github.com/users/milessabin/orgs","repos_url":"https://api.github.com/users/milessabin/repos","events_url":"https://api.github.com/users/milessabin/events{/privacy}","received_events_url":"https://api.github.com/users/milessabin/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/non/cats/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-08-06T13:18:32Z","updated_at":"2015-08-25T19:33:58Z","closed_at":null,"body":"It's common to want simple names for transformer stacks, eg.,\r\n```scala\r\ntype OptionalWork[T] = OptionT[Work, T]\r\n```\r\nType aliases are somewhat second class in Scala however. In particular they don't have proper companion objects, and objects of the same name aren't searched for corresponding implicit definitions.\r\n\r\nIf transformers were non-final it would be possible to define a trait rather than a type alias,\r\n```scala\r\ntrait OptionalWork[T] extends OptionT[Work, T]\r\n```\r\nIn which case a useful companion object would be a possibility.\r\n"},"comment":{"url":"https://api.github.com/repos/non/cats/issues/comments/134710082","html_url":"https://github.com/non/cats/issues/434#issuecomment-134710082","issue_url":"https://api.github.com/repos/non/cats/issues/434","id":134710082,"user":{"login":"milessabin","id":131183,"avatar_url":"https://avatars.githubusercontent.com/u/131183?v=3","gravatar_id":"","url":"https://api.github.com/users/milessabin","html_url":"https://github.com/milessabin","followers_url":"https://api.github.com/users/milessabin/followers","following_url":"https://api.github.com/users/milessabin/following{/other_user}","gists_url":"https://api.github.com/users/milessabin/gists{/gist_id}","starred_url":"https://api.github.com/users/milessabin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/milessabin/subscriptions","organizations_url":"https://api.github.com/users/milessabin/orgs","repos_url":"https://api.github.com/users/milessabin/repos","events_url":"https://api.github.com/users/milessabin/events{/privacy}","received_events_url":"https://api.github.com/users/milessabin/received_events","type":"User","site_admin":false},"created_at":"2015-08-25T19:33:58Z","updated_at":"2015-08-25T19:33:58Z","body":"It is, but it would be considered as part of the implicit scope."}}