type enclosing: more precise smallest enclosing