Union/Find
abstype point (a:t@ype) = ptr
fun {a:t@ype} fresh (a): point a
fun {a:t@ype} find (point a): a
fun {a:t@ype} union (point a, point a): void
fun {a:t@ype} equiv (point a, point a): bool
fun {a:t@ype} redundant (point a): bool
fun {a:t@ype} change (point a, a): void
INFO