blob: 48fd90bbfd3a3fd6272d7dac6cecb8b8622266c5 [file]
allocNode : [a]. Unit -> rec t { l: < Nil Unit | Cons { data: a, rest: t }# > take };
push : [a]. { data: a, list: rec t { l: < Nil Unit | Cons { data: a, rest: t }# > } }#
-> rec t { l: < Nil Unit | Cons { data: a, rest: t }# >};
push r =
let node = allocNode Unit in
take r2 { data = x } = r in
take r3 { list = y } = r2 in
put node.l := Cons { data = x, rest = y } end
end
end
end;