* **gcc** and **llvm/clang** and **Xcode** and **MinGW** are names for other compilers on various systems. Oftentimes these will be used during the installation process to get GHC up and running. Some of the strategies described below will help you install these if they're not already on your machine.
* **alex** and **happy** and **haddock** are names of various Haskell helper programs that GHC uses to get up and running.
* **cabal** is a "package manager" for Haskell. It allows you to install libraries or extensions that other people have built. (Usually those are published at the [Hackage](https://hackage.haskell.org) Package Database.) Some of these are experimental and may not always work; others are quite fundamental and are almost de facto parts of what people expect in a Haskell system.
* **gcc** and **llvm/clang** and **Xcode** and **MinGW** are names for other compilers on various systems. Oftentimes these will be used during the installation process to get GHC up and running. Some of the strategies described below will help you install these if they're not already on your machine.
* **alex** and **happy** and **haddock** are names of various Haskell helper programs that GHC uses to get up and running.
* **cabal** is a "package manager" for Haskell. It allows you to install libraries or extensions that other people have built. (Usually those are published at the [Hackage](https://hackage.haskell.org) Package Database.) Some of these are experimental and may not always work; others are quite fundamental and are almost de facto parts of what people expect in a Haskell system.