Complexity Reduction

If an object becomes really complex, it becomes hard to maintain it as a single program unit

Creating Package Type allows splitting single definition into many standardized Type Traits, reducing overall complex functionality to trivial components. If split is not sufficient, each Type Trait can be developed as a Package Type itself

The largest example of complexity reduction in Scalqa is the Stream, which is split into extend, iterate, consume, and info traits. Some of those traits are split further. From usage prospective, Stream is still a single integral object definition