/// Names in the symbol table are unique, including between different types of object stored in the
/// symbol table. For example, you cannot have a letting and decision variable with the same name.
/// Unless otherwise stated, these follow the semantics specified in section 2.2.2 of the Savile
/// + `None` if `name` does not exist, is not a decision variable, or does not have that representation.
pub fn representations_for(&self, name: &Name) -> Option<Vec<Vec<Box<dyn Representation>>>> {