pub fn args_safe(&self, index: usize, within: &[usize]) -> Option<(Vec<usize>, usize)> {
        let mut offset = 0;
        let mut numbers = vec![];

        for bound in within.iter() {
            let (arg, consumed) = build_number(&self.code[index + offset..]);
            if arg >= *bound {
                return None;
            }
            numbers.push(arg);
            offset += consumed;
        }

        return Some((numbers, offset));
    }
Constructs a number of bytecode arguments,
ensuring each is within a specific bound.
If any bounds are violated, we return `None`.
passerine-common/src/lambda.rs