unison icon indicating copy to clipboard operation
unison copied to clipboard

Pretty-printer should indent arguments of higher order functions

Open atacratic opened this issue 6 years ago • 3 comments

I see the following when running through the quickstart on M1a.

  ✅
  
  I found and typechecked these definitions in ~/u1/scratch.u. If you do an
  `add` or `update` , here's how your codebase would change:
  
    ⍟ These new definitions will replace existing ones of the same name and are
      ok to `update`:
    
      quickstart.dsort : (a
                         ->{quickstart.Remote} a
                         ->{quickstart.Remote} base.Boolean)
                         -> [a]
                         ->{quickstart.Remote} [a]
  
  Now evaluating any watch expressions (lines starting with `>`)...
  Ctrl+C cancels.

    1 | > runLocal '(quickstart.dsort (<) [8,2,3,1,4,5,6,7])
          ⧩
          [1, 2, 3, 4, 5, 6, 7, 8]

That signature for dsort looks confusing - it was 20 seconds before I'd spotted the parentheses and could actually parse what it meant. Instead it should look like this...

      quickstart.dsort : (a
                           ->{quickstart.Remote} a
                           ->{quickstart.Remote} base.Boolean)
                         -> [a]
                         ->{quickstart.Remote} [a]

i.e. some extra indenting for the lines that are part of a parenthesized part of the signature.

atacratic avatar Aug 02 '19 21:08 atacratic