-- BBSafety.mesa
-- Russ Atkinson, August 17, 1982 11:24 am
DIRECTORY
Rope USING [ROPE],
WorldVM USING [Address, World];
BBSafety: CEDAR DEFINITIONS
= BEGIN OPEN Rope, WorldVM;
IsValidRef: PROC [world: World, ref: Address] RETURNS [BOOL];
-- returns TRUE iff the address is a valid ref in the given world
-- note: IsValidRef[w,a] => IsValidAddr[w,a]
IsValidAddr: PROC [world: World, addr: Address] RETURNS [BOOL];
-- returns TRUE iff the address is valid in the given world
Mother: PROC [inner: PROC] RETURNS [ROPE];
-- returns NIL if inner was successful
-- otherwise returns a rope describing an RTTypes-related failure
-- (RTSymbols: CantFindFile, ModuleVersionMismatch, NoSymbols)
-- (RTTypes: NotImplemented, TypeFault)
-- (RTTypesBasic: InvalidType)
-- if ANY, protect against any failure (return "ANY")
END.