payload: {"action":"created","issue":{"url":"https://api.github.com/repos/tweag/ormolu/issues/148","repository_url":"https://api.github.com/repos/tweag/ormolu","labels_url":"https://api.github.com/repos/tweag/ormolu/issues/148/labels{/name}","comments_url":"https://api.github.com/repos/tweag/ormolu/issues/148/comments","events_url":"https://api.github.com/repos/tweag/ormolu/issues/148/events","html_url":"https://github.com/tweag/ormolu/issues/148","id":462879302,"node_id":"MDU6SXNzdWU0NjI4NzkzMDI=","number":148,"title":"Type synonym is reformatted into a less readable form","user":{"login":"int-index","id":4061728,"node_id":"MDQ6VXNlcjQwNjE3Mjg=","avatar_url":"https://avatars1.githubusercontent.com/u/4061728?v=4","gravatar_id":"","url":"https://api.github.com/users/int-index","html_url":"https://github.com/int-index","followers_url":"https://api.github.com/users/int-index/followers","following_url":"https://api.github.com/users/int-index/following{/other_user}","gists_url":"https://api.github.com/users/int-index/gists{/gist_id}","starred_url":"https://api.github.com/users/int-index/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/int-index/subscriptions","organizations_url":"https://api.github.com/users/int-index/orgs","repos_url":"https://api.github.com/users/int-index/repos","events_url":"https://api.github.com/users/int-index/events{/privacy}","received_events_url":"https://api.github.com/users/int-index/received_events","type":"User","site_admin":false},"labels":[{"id":1395602301,"node_id":"MDU6TGFiZWwxMzk1NjAyMzAx","url":"https://api.github.com/repos/tweag/ormolu/labels/discussion","name":"discussion","color":"f493ff","default":false},{"id":1404713829,"node_id":"MDU6TGFiZWwxNDA0NzEzODI5","url":"https://api.github.com/repos/tweag/ormolu/labels/style","name":"style","color":"1d76db","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2019-07-01T19:43:03Z","updated_at":"2019-07-11T13:28:16Z","closed_at":null,"author_association":"NONE","body":"Before Ormolu:\r\n\r\n```\r\ntype CoerceLocalSig m m' =\r\n  forall r a.\r\n  LocalSig m  r a ->\r\n  LocalSig m' r a\r\n```\r\n\r\n\r\nAfter Ormolu:\r\n\r\n```\r\ntype CoerceLocalSig m m'\r\n  = forall r a. LocalSig m r a\r\n  -> LocalSig m' r a\r\n```\r\n\r\nThat's clearly worse because now `LocalSig` isn't aligned. Now, I'm not sure what the style guide Ormolu follows, but if my hand-written version is incompatible with it (because of the trailing `->`), at least keep the `forall` on its own line:\r\n\r\n```\r\ntype CoerceLocalSig m m'\r\n  = forall r a.\r\n     LocalSig m r a\r\n  -> LocalSig m' r a\r\n```"},"comment":{"url":"https://api.github.com/repos/tweag/ormolu/issues/comments/510485201","html_url":"https://github.com/tweag/ormolu/issues/148#issuecomment-510485201","issue_url":"https://api.github.com/repos/tweag/ormolu/issues/148","id":510485201,"node_id":"MDEyOklzc3VlQ29tbWVudDUxMDQ4NTIwMQ==","user":{"login":"int-index","id":4061728,"node_id":"MDQ6VXNlcjQwNjE3Mjg=","avatar_url":"https://avatars1.githubusercontent.com/u/4061728?v=4","gravatar_id":"","url":"https://api.github.com/users/int-index","html_url":"https://github.com/int-index","followers_url":"https://api.github.com/users/int-index/followers","following_url":"https://api.github.com/users/int-index/following{/other_user}","gists_url":"https://api.github.com/users/int-index/gists{/gist_id}","starred_url":"https://api.github.com/users/int-index/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/int-index/subscriptions","organizations_url":"https://api.github.com/users/int-index/orgs","repos_url":"https://api.github.com/users/int-index/repos","events_url":"https://api.github.com/users/int-index/events{/privacy}","received_events_url":"https://api.github.com/users/int-index/received_events","type":"User","site_admin":false},"created_at":"2019-07-11T13:28:16Z","updated_at":"2019-07-11T13:28:16Z","author_association":"NONE","body":"Keep in mind that GHC also has the `forall a ->` syntax and soon will get top-level kind signatures. So, this definition would be valid:\r\n\r\n```\r\ntype P :: forall s. forall k -> k s -> Type\r\ndata P k (a :: k s) = MkP\r\n```\r\n\r\nIf the kind signature for `P` would be longer and split into multiple lines, would one use leading punctuation?\r\n\r\n```\r\ntype P\r\n  :: forall s\r\n   . forall k\r\n  -> k\r\n  -> Type\r\n```\r\n\r\nTrailing punctuation?\r\n\r\n```\r\ntype P ::\r\n  forall s.\r\n  forall k ->\r\n  k ->\r\n  Type\r\n```\r\n\r\nor some sort of hybrid?\r\n\r\n```\r\ntype P\r\n  :: forall s.\r\n     forall k ->\r\n     k\r\n  -> Type\r\n```"}}
other: {"actor":{"display_login":"int-index"}}