A commentary on structural patterns

Like creational patterns, structural patterns are sometimes implemented interchangeably.
For example, a bridge pattern is often implemented using the adapter pattern. Flyweight does not necessarily have to be implemented only as an immutable object; it can be a single instance (using, for example, a singleton) that is shared in various other classes in different scopes.
Also, note that, although adapter and bridge patterns match very much in terms of implementation design, their intent is different: one is to simplify and unify, while the other is to create further abstractions (that do not necessarily simplify) on top of an existing implementation.