exp (Lambda _ ps b) =
  depend (write "\\" >> maybeSpace)
         (do spaced (map pretty ps)
             dependOrNewline
               (write " -> ")
               b
               (indented 1 .
                pretty))
  where maybeSpace = case ps of
                       (PBangPat {}):_ -> space
                       (PIrrPat {}):_ -> space
                       _ -> return ()
exp (Lambda _ ps b) =
  depend (write "\\" >> maybeSpace)
         (do spaced (map pretty ps)
             dependOrNewline
               (write " -> ")
               b
               (indented 1 .
                pretty))
  where maybeSpace = case ps of
                       (PBangPat {}):_ -> space
                       (PIrrPat {}):_ -> space
                       _ -> return ()
exp (Lambda _ ps b) =
  depend (write "\\" >> maybeSpace)
         (do spaced (map pretty ps)
             dependOrNewline
               (write " -> ")
               b
               (indented 1 .
                pretty))
  where maybeSpace = case ps of
                       (PBangPat {}):_ -> space
                       (PIrrPat {}):_ -> space
                       _ -> return ()