module Types where
import GHC.Generics
import Data.Map (Map)
type Dependency = Map StackName [StackName]
data Stack = Stack {sStackId :: StackId,
sStackName :: StackName,
sExports :: [Export]} deriving Show
newtype Stacks = Stacks { sStacks :: [Stack]} deriving Show
newtype Export = Export { eName :: ExportName} deriving Show
newtype StackName = StackName String deriving (Generic, Eq, Ord)
newtype StackId = StackId String deriving (Show, Generic, Eq)
newtype ExportName = ExportName String deriving (Show, Generic, Eq)
newtype Imports = Imports { iStackNames :: [StackName] } deriving (Show)
snStackName (StackName s) = s
instance Show StackName where
show (StackName s) = s