{"action":"created","issue":{"url":"https://api.github.com/repos/chrisdone/hindent/issues/121","labels_url":"https://api.github.com/repos/chrisdone/hindent/issues/121/labels{/name}","comments_url":"https://api.github.com/repos/chrisdone/hindent/issues/121/comments","events_url":"https://api.github.com/repos/chrisdone/hindent/issues/121/events","html_url":"https://github.com/chrisdone/hindent/issues/121","id":68214789,"number":121,"title":"Gibiansky style ignoring line length","user":{"login":"pharpend","id":3221699,"avatar_url":"https://avatars.githubusercontent.com/u/3221699?v=3","gravatar_id":"","url":"https://api.github.com/users/pharpend","html_url":"https://github.com/pharpend","followers_url":"https://api.github.com/users/pharpend/followers","following_url":"https://api.github.com/users/pharpend/following{/other_user}","gists_url":"https://api.github.com/users/pharpend/gists{/gist_id}","starred_url":"https://api.github.com/users/pharpend/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pharpend/subscriptions","organizations_url":"https://api.github.com/users/pharpend/orgs","repos_url":"https://api.github.com/users/pharpend/repos","events_url":"https://api.github.com/users/pharpend/events{/privacy}","received_events_url":"https://api.github.com/users/pharpend/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":13,"created_at":"2015-04-13T23:05:02Z","updated_at":"2015-04-21T04:03:58Z","closed_at":null,"body":"Perhaps it could read `fill-column`, and guess from that."},"comment":{"url":"https://api.github.com/repos/chrisdone/hindent/issues/comments/94632143","html_url":"https://github.com/chrisdone/hindent/issues/121#issuecomment-94632143","issue_url":"https://api.github.com/repos/chrisdone/hindent/issues/121","id":94632143,"user":{"login":"gibiansky","id":1865411,"avatar_url":"https://avatars.githubusercontent.com/u/1865411?v=3","gravatar_id":"","url":"https://api.github.com/users/gibiansky","html_url":"https://github.com/gibiansky","followers_url":"https://api.github.com/users/gibiansky/followers","following_url":"https://api.github.com/users/gibiansky/following{/other_user}","gists_url":"https://api.github.com/users/gibiansky/gists{/gist_id}","starred_url":"https://api.github.com/users/gibiansky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gibiansky/subscriptions","organizations_url":"https://api.github.com/users/gibiansky/orgs","repos_url":"https://api.github.com/users/gibiansky/repos","events_url":"https://api.github.com/users/gibiansky/events{/privacy}","received_events_url":"https://api.github.com/users/gibiansky/received_events","type":"User","site_admin":false},"created_at":"2015-04-21T04:03:58Z","updated_at":"2015-04-21T04:03:58Z","body":"Control the whitespace to the left? In this case, I think no.\r\n\r\n(The reason for that is that the `case` is an expression in a lambda, and infix expressions do not go to the left of their first argument. That way you never end up with something like this:\r\n```haskell\r\naLongFunctionName with some arguments = a very long expression + (case x of\r\n  Nothing -> 0\r\n  Just x -> 100)\r\n                                        + 3\r\n```\r\nbut will instead have\r\n```haskell\r\naLongFunctionName with some arguments = a very long expression + (case x of\r\n                                          Nothing -> 0\r\n                                          Just x -> 100)\r\n                                        + 3\r\n```\r\nwhich is IMO easier to read.\r\n\r\nSo I guess the short answer is: reduce the whitespace by moving your code to eliminate that whitespace, rather than relying on hindent. I would have written that as\r\n```haskell\r\n-- |Get the project from the user\r\ngetProject :: IO Project\r\ngetProject = do\r\n  pbs <- getProjectBS\r\n  case decodeEither pbs of\r\n    Left err -> fail err\r\n    Right (NewProject nom mtrs hp descr) -> do\r\n      newNom <- if | nom == _repl_working_dir -> T.pack . last . split \"/\" <$> getCurrentDirectory\r\n                   | otherwise -> pure nom\r\n      pure $ Project newNom (mtnrToPerson <$> mtrs) hp descr []\r\n```\r\nor as\r\n```haskell\r\ngetProject :: IO Project\r\ngetProject =\r\n  getProjectBS >>= \\pbs -> case decodeEither pbs of\r\n    Left err -> fail err\r\n    Right (NewProject nom mtrs hp descr) -> do\r\n      newNom <- if | nom == _repl_working_dir -> T.pack . last . split \"/\" <$> getCurrentDirectory\r\n                   | otherwise -> pure nom\r\n      pure $ Project newNom (mtnrToPerson <$> mtrs) hp descr []\r\n```\r\nUltimately my style will not work everyone, as it *does* require having somewhat appropriate coding habits.)"}}