{-# LANGUAGE DeriveGeneric #-} module Types where import GHC.Generics data Dependency = Dependency {dStackName :: StackName, dDependencies :: [Dependency]} deriving (Show) 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 (Show, Generic, Eq) newtype StackId = StackId String deriving (Show, Generic, Eq) newtype ExportName = ExportName String deriving (Show, Generic) newtype Imports = Imports { iStackNames :: [StackName] } deriving (Show)