This document discusses BLOC, a trait-based collections library for Pharo. It introduces traits as a way to define reusable behaviors. The library separates collection behaviors into traits like TOrdered and TArray to improve reuse and customization. It also uses primary and secondary method definitions in traits to simulate encapsulation without wasted accessors. The document presents a case study of creating an OrderedSet using selected traits and discusses trait granularity, reusability, and the relationship between traits and inheritance.