make sure GeometricEntity are Basic
make optics/util more robust wrt arg types