The bidirectional layout efficiently handles hierarchies with separation of inheritance and subtyping. Two class libraries were examined to determine how the bidirectional layout works in practice and whether existing code conforms to the assumptions that it is based on.