static interface IVar extends IF0 { void set(A a); A get(); // reified type of value (if available) default Class getType() { null; } default IF0 getter() { ret l0 get; } default IVF1 setter() { ret l1 set; } ifndef Android default bool has() { ret get() != null; } default void clear() { set(null); } endifndef }