Figure 1 illustrates the dependencies among the packages. The lines in the figure illustrate dependencies in the direction of the arrow. In order to implement a package that has dependencies, the packages on which it is dependent must also be implemented. The dependencies are of three types: