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

413 B

Tests for a loop that was previously occurring in the type checker.

scratch/main> builtins.merge
structural ability A t g where 
  fork : '{g, A t g} a -> t a
  await : t a -> a
  empty! : t a
  put : a -> t a -> ()

example : '{A t {}} Nat
example = 'let
  r = A.empty!
  go u = 
    t = A.fork '(go (u + 1))
    A.await t
  
  go 0
  t2 = A.fork '(A.put 10 r)
  A.await r