content: {-- should be the same in every option --}
  
  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 --}
  
  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_single_comment =
      let -- a comment
          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
      let
  
      let a = 1
  
      let b = 2
          c = 3
  
      let d = "hello"
       in print d
  
      let d = "hello"
          e = "world"
       in print (d ++ e)
  
      let f = 1 in print f
  
  {-- 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
        ]
  