module Data.OgmaSpec where
data Spec a = Spec
{ forall a. Spec a -> [InternalVariableDef]
internalVariables :: [ InternalVariableDef ]
, forall a. Spec a -> [ExternalVariableDef]
externalVariables :: [ ExternalVariableDef ]
, forall a. Spec a -> [Requirement a]
requirements :: [ Requirement a ]
}
deriving (Int -> Spec a -> ShowS
[Spec a] -> ShowS
Spec a -> String
(Int -> Spec a -> ShowS)
-> (Spec a -> String) -> ([Spec a] -> ShowS) -> Show (Spec a)
forall a. Show a => Int -> Spec a -> ShowS
forall a. Show a => [Spec a] -> ShowS
forall a. Show a => Spec a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall a. Show a => Int -> Spec a -> ShowS
showsPrec :: Int -> Spec a -> ShowS
$cshow :: forall a. Show a => Spec a -> String
show :: Spec a -> String
$cshowList :: forall a. Show a => [Spec a] -> ShowS
showList :: [Spec a] -> ShowS
Show)
data InternalVariableDef = InternalVariableDef
{ InternalVariableDef -> String
internalVariableName :: String
, InternalVariableDef -> String
internalVariableType :: String
, InternalVariableDef -> String
internalVariableExpr :: String
}
deriving (Int -> InternalVariableDef -> ShowS
[InternalVariableDef] -> ShowS
InternalVariableDef -> String
(Int -> InternalVariableDef -> ShowS)
-> (InternalVariableDef -> String)
-> ([InternalVariableDef] -> ShowS)
-> Show InternalVariableDef
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InternalVariableDef -> ShowS
showsPrec :: Int -> InternalVariableDef -> ShowS
$cshow :: InternalVariableDef -> String
show :: InternalVariableDef -> String
$cshowList :: [InternalVariableDef] -> ShowS
showList :: [InternalVariableDef] -> ShowS
Show)
data ExternalVariableDef = ExternalVariableDef
{ ExternalVariableDef -> String
externalVariableName :: String
, ExternalVariableDef -> String
externalVariableType :: String
}
deriving (Int -> ExternalVariableDef -> ShowS
[ExternalVariableDef] -> ShowS
ExternalVariableDef -> String
(Int -> ExternalVariableDef -> ShowS)
-> (ExternalVariableDef -> String)
-> ([ExternalVariableDef] -> ShowS)
-> Show ExternalVariableDef
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ExternalVariableDef -> ShowS
showsPrec :: Int -> ExternalVariableDef -> ShowS
$cshow :: ExternalVariableDef -> String
show :: ExternalVariableDef -> String
$cshowList :: [ExternalVariableDef] -> ShowS
showList :: [ExternalVariableDef] -> ShowS
Show)
data Requirement a = Requirement
{ forall a. Requirement a -> String
requirementName :: String
, forall a. Requirement a -> a
requirementExpr :: a
, forall a. Requirement a -> String
requirementDescription :: String
}
deriving (Int -> Requirement a -> ShowS
[Requirement a] -> ShowS
Requirement a -> String
(Int -> Requirement a -> ShowS)
-> (Requirement a -> String)
-> ([Requirement a] -> ShowS)
-> Show (Requirement a)
forall a. Show a => Int -> Requirement a -> ShowS
forall a. Show a => [Requirement a] -> ShowS
forall a. Show a => Requirement a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall a. Show a => Int -> Requirement a -> ShowS
showsPrec :: Int -> Requirement a -> ShowS
$cshow :: forall a. Show a => Requirement a -> String
show :: Requirement a -> String
$cshowList :: forall a. Show a => [Requirement a] -> ShowS
showList :: [Requirement a] -> ShowS
Show)