module Domain.Models.TypeCentricDoc where import Domain.Prelude hiding (Product, Sum, Enum) import qualified Domain.Models.TypeString as TypeString type Doc = [(Text, Structure)] data Structure = ProductStructure [(Text, TypeString.AppSeq)] | SumStructure [(Text, SumTypeExpression)] | EnumStructure [Text] deriving (Int -> Structure -> ShowS [Structure] -> ShowS Structure -> String (Int -> Structure -> ShowS) -> (Structure -> String) -> ([Structure] -> ShowS) -> Show Structure forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Structure] -> ShowS $cshowList :: [Structure] -> ShowS show :: Structure -> String $cshow :: Structure -> String showsPrec :: Int -> Structure -> ShowS $cshowsPrec :: Int -> Structure -> ShowS Show) data SumTypeExpression = SequenceSumTypeExpression [TypeString.AppSeq] | StringSumTypeExpression TypeString.CommaSeq deriving (Int -> SumTypeExpression -> ShowS [SumTypeExpression] -> ShowS SumTypeExpression -> String (Int -> SumTypeExpression -> ShowS) -> (SumTypeExpression -> String) -> ([SumTypeExpression] -> ShowS) -> Show SumTypeExpression forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [SumTypeExpression] -> ShowS $cshowList :: [SumTypeExpression] -> ShowS show :: SumTypeExpression -> String $cshow :: SumTypeExpression -> String showsPrec :: Int -> SumTypeExpression -> ShowS $cshowsPrec :: Int -> SumTypeExpression -> ShowS Show)