unison icon indicating copy to clipboard operation
unison copied to clipboard

use clauses below pretty-printed term does not parse, but use clauses above does parse

Open kylegoetz opened this issue 1 year ago • 1 comments

Describe and demonstrate the bug

branch here: https://share.unison-lang.org/@kylegoetz/finger-tree-bloated/code/@kylegoetz/parse-bug

You can either paste this in scratch or you can edit foldlWithPos and then add the use clauses beneath what the pretty printer dumps to the scratch:

``` unison
FingerTree.foldlWithPos : (b ->{g2} v ->{g1} a ->{g} b) -> b -> FingerTree v a -> b
FingerTree.foldlWithPos = todo ""

use FingerTree
use Digit
```

output is

``` umm
I got confused here:
  
      3 | FingerTree.foldlWithPos : (b ->{g2} v ->{g1} a ->{g} b) -> b -> FingerTree v a -> b
  
  
  I was surprised to find a ':' here.
  I was expecting one of these instead:
  
  * ability
  * bang
  * binding
  * do
  * false
  * force
  * [snip]
```

If you remove the use clauses from the bottom, scratch parses. If you move them to the top, scratch parses.

Environment (please complete the following information):

  • ucm --version 0.5.23
  • OS/Architecture: macOS 15.0.1, silicon

kylegoetz avatar Oct 16 '24 16:10 kylegoetz