hs-0.1.0.0: src/HS/CLI/CLI.hs
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE GeneralisedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MultiWayIf #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TupleSections #-}
module HS.CLI.CLI
( CLI(..)
, InstallMode(..)
, Compiler(..)
, CompilerVersion(..)
, Tool(..)
, ToolName(..)
, ToolArgs(..)
, Manager(..)
) where
import HS.CLI.ToolArgs
import HS.Types.CompilerTool
import HS.Types.InstallMode
import HS.Types.Manager
-- | command line abstrax syntax type
data CLI
= CLI_version
| CLI_whereis (Maybe InstallMode) Compiler
| CLI_run (Maybe InstallMode) Tool ToolArgs
| CLI_list (Maybe Compiler)
| CLI_use [Manager]
| CLI_use_install_mode (Maybe InstallMode)
| CLI_use_compiler (Maybe CompilerVersion)
| CLI_dump_ghc_wrappers (Maybe InstallMode)
deriving (Show)