
import GHC.Generics
import Data.Map (Map)

type Dependency = Map StackName [StackName] -- list of nodes with outgoing edge targets

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)