inl main () : i32 =
    inl ~n = 7i32
    inl ~word = "hi"
    inl left_pair = n, word
    inl left_heap = !!!!LayoutToHeap({value = left_pair})
    inl ~m = 4i32
    inl ~other = "yo"
    inl right_pair = m, other
    inl right_heap = !!!!LayoutToHeap({value = right_pair})
    inl pair = left_heap, right_heap
    inl inner = !!!!LayoutToHeap({value = pair})
    inl ~mark = 2i32
    inl outer_pair = inner, mark
    inl outer = !!!!LayoutToHeap({value = outer_pair})
    inl f (z : i32) : heap {value : (heap {value : heap {value : i32 * string} * heap {value : i32 * string}}) * i32} =
        if z =. 0i32 then
            outer
        else
            outer
    inl ~g = f
    inl held = g 1i32
    inl opened = !!!!LayoutIndex(held)
    inl ~(inner_held, flag) = opened.value
    inl inner_opened = !!!!LayoutIndex(inner_held)
    inl ~(left, right) = inner_opened.value
    inl left_opened = !!!!LayoutIndex(left)
    inl ~(a, b) = left_opened.value
    inl right_opened = !!!!LayoutIndex(right)
    inl ~(c, d) = right_opened.value
    if a =. 7i32 && !!!!EQ(b, "hi") && c =. 4i32 && !!!!EQ(d, "yo") && flag =. 2i32 then 0i32 else 1i32
