id = "ghcup"
name = "GHCup"
homepage = "https://www.haskell.org/ghcup/"
description = "The main installer for the Haskell Language Toolchain."
executables = ["ghcup"]
platforms = ["macos", "linux"]
[dotfiles]
paths = ["~/.ghcup/config.yaml", "[configHome]/ghcup/config.yaml"]
exclude = []
secret = []
side_effect = false
[commands]
format = 1
label = "GHCup"
description = "Install a Haskell tool or choose the active version. Listing, removal, upgrade and the TUI are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.subcommand]]
path = ["install"]
label = "Install a tool"
[[commands.subcommand.source]]
id = "guide"
kind = "manual"
url = "https://www.haskell.org/ghcup/guide/"
revision = "2026-10-27"
evidence = """
ghcup install ghc
ghcup install ghc 8.2.2
ghcup install cabal
All of the following are valid arguments to ghcup install ghc:
latest, recommended
If the argument is omitted, the default is recommended.
"""
[[commands.subcommand.field]]
id = "tool"
label = "Tool"
type = "string"
position = 0
suggestions = [{ value = "ghc", label = "GHC" }, { value = "cabal", label = "cabal-install" }]
sources = ["guide"]
[[commands.subcommand.field]]
id = "version"
label = "Version or tag"
description = "Omit for recommended; latest and recommended are accepted tags."
type = "string"
position = 1
suggestions = [{ value = "recommended", label = "recommended" }, { value = "latest", label = "latest" }]
sources = ["guide"]
[[commands.subcommand.task]]
id = "install"
label = "Install"
fields = ["tool", "version"]
required = ["tool"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["tool", "version"]
[[commands.subcommand]]
path = ["set"]
label = "Set the active version"
[[commands.subcommand.source]]
id = "guide"
kind = "manual"
url = "https://www.haskell.org/ghcup/guide/"
revision = "2026-10-27"
evidence = """
ghcup set ghc 8.4.4
"""
[[commands.subcommand.field]]
id = "tool"
label = "Tool"
type = "string"
position = 0
suggestions = [{ value = "ghc", label = "GHC" }, { value = "cabal", label = "cabal-install" }]
sources = ["guide"]
[[commands.subcommand.field]]
id = "version"
label = "Version"
type = "string"
position = 1
sources = ["guide"]
[[commands.subcommand.task]]
id = "set"
label = "Set active"
fields = ["tool", "version"]
required = ["tool", "version"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["tool", "version"]