Currently it is possible to use lengths both as a method and as a non-method, e.g., iet.lengths().forget() is the same as iet.lengths.forget(). We should drop the hacks that make this work and exactly resemble the C++ interface, iet.lengths().forget().