pub trait MaybeImmediate { // Required methods fn imm_value(&self) -> Option<Value>; fn imm_value_scalar(&self) -> Option<i64>; // Provided method fn is_imm(&self) -> bool { ... } }