Подскажите, как задизайнить такую штуку. Есть типа-интерпретатор, и в нём в разных ситуациях нужно делать lookup информации о переменной или её имени, по порядку поискав во фреймах локального стека, в словарике полей текущего объекта, и в пачке глобальных. После этого в некоторых ситуациях переменную надо прочитать, а в некоторых записать (всё в State обрабатывается). Однако некоторые глобальные переменные могут быть константами; а если переменной нигде не было, её надо добавить к полям объекта. В итоге мне нужно как бы линзу, но уже «наведённую» на конкретное значение, при этом с Maybe-геттером (если её нет) и Maybe-сеттером (если это константа)