# 3. Package Concepts and Development

- 3.1. Quickstart
  - 3.1.1. Introduction
  - 3.1.2. Using `cabal init`
  - 3.1.3. Running the program
  - 3.1.4. About the Cabal package structure
  - 3.1.5. Editing the .cabal file
  - 3.1.6. Modules included in the package
  - 3.1.7. Modules imported from other packages
  - 3.1.8. Building the package
  - 3.1.9. Next steps
- 3.2. Package concepts
  - 3.2.1. The point of packages
  - 3.2.2. Package names and versions
  - 3.2.3. Kinds of package: Cabal vs GHC vs system
  - 3.2.4. Unit of distribution
  - 3.2.5. Explicit dependencies and automatic package management
  - 3.2.6. Portability