packages feed

prune-juice-0.7: src/Data/Prune/Section/Types.hs

-- |Description: AST for the "Data.Prune.ApplyStrategy.Smart" strategy.
module Data.Prune.Section.Types where

import Prelude

import Data.Text (Text)

import qualified Data.Prune.Types as T

-- |The name of a @common@ stanza.
newtype CommonName = CommonName { unCommonName :: Text }
  deriving (Eq, Ord, Show)

-- |An indented section.
data NestedSection
  = BuildDependsNestedSection Int [String]
  | ImportNestedSection Int [String]
  | OtherNestedSection Int [String]
  deriving (Eq, Ord, Show)

-- |A top-level section.
data Section
  = TargetSection T.CompilableType (Maybe T.CompilableName) [NestedSection]
  | CommonSection CommonName [NestedSection]
  | OtherSection [String]
  deriving (Eq, Ord, Show)