union Option { Some { value: Int } None }

: unwrap-or ( Option Int -- Int )
    swap match
        Some { >value } -> nip
        None ->
    end
;

: test-unwrap-some ( -- )
    42 Make-Some 0 unwrap-or
    42 test.assert-eq
;

: test-unwrap-none ( -- )
    Make-None 99 unwrap-or
    99 test.assert-eq
;
