Copyright | (c) Alexander Vieth, 2015 |
---|---|
License | BSD3 |
Maintainer | aovieth@gmail.com |
Stability | experimental |
Portability | non-portable (GHC only) |
Safe Haskell | None |
Language | Haskell2010 |
Documentation
data ValidityCharacterization g f k where Source
VCNil :: SuitableFunctor f => ValidityCharacterization g f [] | |
VCCons :: (SuitableFunctor f, SuitableFunctorConstraint f t) => (ArgumentList Identity Identity ts -> TaggedIntersectionOfUnions g f t) -> ValidityCharacterization g f ts -> ValidityCharacterization g f (t : ts) |
Typeable ((* -> *) -> (* -> *) -> [*] -> *) ValidityCharacterization |
data ArgumentList g f k where Source
ALNil :: ArgumentList g f [] | |
ALCons :: g (f t) -> ArgumentList g f ts -> ArgumentList g f (t : ts) |
Typeable ((* -> *) -> (* -> *) -> [*] -> *) ArgumentList | |
Every Eq ts => Eq (ArgumentList Identity Identity ts) | |
(Every Ord ts, Every Eq ts) => Ord (ArgumentList Identity Identity ts) | |
Every Show ts => Show (ArgumentList Identity Identity ts) |
data ValidityCriterion phase order where Source
Eq (ValidityCriterion phase order) | |
Ord (ValidityCriterion phase order) | |
Show (ValidityCriterion phase order) |
data SomeValidityCriterion phase where Source
SomeValidityCriterion :: ValidityCriterion phase order -> SomeValidityCriterion phase |
Eq (SomeValidityCriterion phase) | |
Ord (SomeValidityCriterion phase) | |
Show (SomeValidityCriterion phase) | |
Typeable (Phase -> *) SomeValidityCriterion |
data AdjustSetValidityCriterion where Source
type ValidityTag phase order = (,) (ValidityCriterion phase order) Source
synthesize :: (SuitableFunctor f, SuitableFunctorConstraint f (ArgumentList Identity Identity ts), SuitableFunctorConstraint f t, ValidityCharacterizationConstraint f ts) => (forall s. g s -> Identity s) -> VOC g f ts t -> f t Source
analyze :: (forall s. g s -> s) -> (forall s. g s -> r) -> r -> (r -> r -> r) -> VOC g f ts t -> t -> r Source
moveVOC :: GreatPower -> Occupation -> VOC (ValidityTag Typical Move) Set `[ProvinceTarget, Subject]` (Order Typical Move) Source
supportVOC :: GreatPower -> Occupation -> VOC (ValidityTag Typical Support) Set `[Subject, ProvinceTarget, Subject]` (Order Typical Support) Source
convoyVOC :: GreatPower -> Occupation -> VOC (ValidityTag Typical Convoy) Set `[ProvinceTarget, Subject, Subject]` (Order Typical Convoy) Source
surrenderVOC :: GreatPower -> Dislodgement -> VOC (ValidityTag Retreat Surrender) Set `[Subject]` (Order Retreat Surrender) Source
withdrawVOC :: GreatPower -> Map Zone (Aligned Unit, SomeResolved OrderObject Typical) -> VOC (ValidityTag Retreat Withdraw) Set `[ProvinceTarget, Subject]` (Order Retreat Withdraw) Source
disbandSubjectVOC :: GreatPower -> Occupation -> VOC (ValidityTag Adjust Disband) Set `[Subject]` Subject Source
buildSubjectVOC :: GreatPower -> Occupation -> Control -> VOC (ValidityTag Adjust Build) Set `[Subject]` Subject Source
continueSubjectVOC :: GreatPower -> Occupation -> VOC (ValidityTag Adjust Continue) Set `[Subject]` Subject Source
adjustSubjectsVOC :: GreatPower -> Occupation -> Control -> AdjustSubjects -> VOC AdjustSetValidityTag Set `[AdjustSubjects]` AdjustSubjects Source