Scalqa employs its original Package-Oriented Programming (POP) for program structuring. Without understanding the concepts, looking into the source code could be very frustrating

Given Object-Oriented Programming (OOP), if object is not trivial, it can become a Package Type, occupying specially designated package and defined in many different files

From usage prospective Package Type is not different from a regular object. More over, objects can be promoted to Package Types later, and the move should not break any existing code

There are two reasons why an object should become a package type: