unison/unison-src/transcripts/fix2344.output.md
2021-08-30 20:50:14 -04:00

591 B

Checks a corner case with type checking involving destructuring binds.

The binds were causing some sequences of lets to be unnecessarily recursive.

unique ability Nate where
  nate: (Boolean, Nat)
  antiNate: ()


sneezy: (Nat -> {d} a) -> '{Nate,d} a
sneezy dee _ =
  (_,_) = nate
  antiNate
  dee 1

  I found and typechecked these definitions in scratch.u. If you
  do an `add` or `update`, here's how your codebase would
  change:
  
    ⍟ These new definitions are ok to `add`:
    
      unique ability Nate
      sneezy : (Nat ->{d} a) -> '{d, Nate} a