unison/unison-src/transcripts/fix3215.md
2024-06-25 11:11:07 -07:00

491 B

scratch/main> builtins.merge

Tests a case where concrete abilities were appearing multiple times in an inferred type. This was due to the pre-pass that figures out which abilities are being matched on. It was just concatenating the ability for each pattern into a list, and not checking whether there were duplicates.

structural ability T where
  nat : Nat
  int : Int
  flo : Float

f = cases
  {nat -> k} -> 5
  {int -> k} -> 5
  {flo -> k} -> 5
  {x} -> 5