blob: e296ed41efe06f18387293f9cbceb4b4e0ab519f [file] [edit]
genTree : Unit -> rec t { f: < Leaf Unit | Node { left: t, right: t, data: U64 }# > };
deallocList: rec t { l: < Nil Unit | Cons { data: U64, rest: t }# > } -> Unit;
incompatible : rec t { l: < Nil Unit | Cons { data: U64, rest: t }# > }
-> rec t { l: < Nil Unit | Cons { data: U64, rest: t }# > };
incompatible list =
take emptyList { l = node } = list in
case node of
Nil u -> put emptyList.l := Nil u end
| node2 ->
case node2 of
Cons r ->
take r2 { rest = restOfList } = r in
let drop = deallocList restOfList in
put emptyList.l :=
Cons {
data = 0,
rest = genTree Unit
} end
end
end
end
end
end;