diplomacy-0.1.0.0: The board game Diplomacy, spoken in Haskell

Copyright(c) Alexander Vieth, 2015
LicenseBSD3
Maintaineraovieth@gmail.com
Stabilityexperimental
Portabilitynon-portable (GHC only)
Safe HaskellNone
LanguageHaskell2010

Diplomacy.OrderValidation

Description

 

Documentation

data ValidityCharacterization g f k where Source

Constructors

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) 

Instances

Typeable ((* -> *) -> (* -> *) -> [*] -> *) ValidityCharacterization 

data ArgumentList g f k where Source

Constructors

ALNil :: ArgumentList g f [] 
ALCons :: g (f t) -> ArgumentList g f ts -> ArgumentList g f (t : ts) 

Instances

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) 

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