foo :: Int -> Int
foo x =
  let z = y
      y = x
  in z + 100

bar :: Int -> Int
bar x =
  let z = y
      y = x
  in z
      + 100

inlineComment :: Int -> Int
inlineComment =
  let {- join -} go = case () of
                   () -> undefined
  in go

implicitParams :: HasCallStack => Int
implicitParams =
  let ?cs = ?callstack
  in  foo cs

sitting =
  foo $ let x = 20
         in x
