{-# LANGUAGE DeriveDataTypeable #-}

module System.Console.CmdArgs.Implicit.Ann where

import Data.Data

-- | The general type of annotations that can be associated with a value.
data Ann
    = Help String
    | Name String
    | Explicit
    | Ignore
    | GroupName String

    | FlagOptional String
    | FlagArgs
    | FlagArgPos Int
    | FlagType String

    | ModeDefault
    | ModeHelpSuffix [String]

    | ProgSummary String
    | ProgProgram String
    | ProgVerbosity
    | ProgHelpArg [Ann]
    | ProgVersionArg [Ann]
    | ProgVerbosityArgs [Ann] [Ann]
    | ProgNoAtExpand
      deriving (Eq,Ord,Show,Data,Typeable)
