packages feed

fourmolu-0.9.0.0: data/fourmolu/let-style/output-LetNewline-InLeftAlign-indent=2.hs

{-- should be the same in every option --}

-- TODO: https://github.com/tweag/ormolu/issues/917
-- let_oneline_empty =
--   let in 10

let_oneline_single =
  let a = 1 in a + 2

let_oneline_multi =
  let a = 1; b = 2 in a + b

{-- pure let expressions --}

-- TODO: https://github.com/tweag/ormolu/issues/917
-- let_empty =
--   let
--   in  10

let_single =
  let
    a = 1
  in
    a + 2

let_single_sig =
  let
    a :: Int
    a = 1
  in
    a + 2

let_multi =
  let
    a = 1
    b = 2
  in
    a + b

let_single_newline =
  let
    a = 1
  in
    a + 2

let_multi_newline =
  let
    a = 1
    b = 2
  in
    a + b

{-- do-block --}

test_do = do
  -- TODO: https://github.com/tweag/ormolu/issues/917
  -- let

  let
    a = 1

  let
    b = 2
    c = 3

  let
    d = "hello"
   in
    print d

  let
    d = "hello"
    e = "world"
   in
    print (d ++ e)

{-- list comprehension --}

test_list =
  [ x + a + b + c
  | x <- xs
  , let

  , let
      a = 1
  , let
      b = 2
      c = 2
  ]

test_list_do = do
  x <-
    [ x + a + b + c
      | x <- xs
      , let

      , let
          a = 1
      , let
          b = 2
          c = 3
      ]

  [ x + y + a + b + c
    | y <- ys
    , let

    , let
        a = 1
    , let
        b = 2
        c = 3
    ]