Eval:possible_values() returns tuple with values and mutability
Eval: possible_values: cache results if possible