proc dosave(filename)
{
    var res;

    res = oadl::save(filename);
    switch (res) {
    case true : "Save succeeded!\n";
    case false : "Error saving to ", filename, '\n';
    case nil : "Restore succeeded!\n";
    }
    return res;
}

proc dorestore(filename)
{
    oadl::restore(filename);
    "Error restoring from ", filename, '\n';
}

proc main()
{
    var i = 3;
    const saveName = "oadlsav.oax";

    "At start, i is ", i, '\n';
    while (dosave(saveName)) {
        i = 4;
        "Before restore, i is ", i, '\n';
        dorestore(saveName);
    }
    "At end, i is ", i, '\n';
}