diplomacy-0.2.0.0: Diplomacy board game

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) 

data ValidityCriterion phase order where Source #

Instances

Eq (ValidityCriterion phase order) Source # 

Methods

(==) :: ValidityCriterion phase order -> ValidityCriterion phase order -> Bool #

(/=) :: ValidityCriterion phase order -> ValidityCriterion phase order -> Bool #

Ord (ValidityCriterion phase order) Source # 

Methods

compare :: ValidityCriterion phase order -> ValidityCriterion phase order -> Ordering #

(<) :: ValidityCriterion phase order -> ValidityCriterion phase order -> Bool #

(<=) :: ValidityCriterion phase order -> ValidityCriterion phase order -> Bool #

(>) :: ValidityCriterion phase order -> ValidityCriterion phase order -> Bool #

(>=) :: ValidityCriterion phase order -> ValidityCriterion phase order -> Bool #

max :: ValidityCriterion phase order -> ValidityCriterion phase order -> ValidityCriterion phase order #

min :: ValidityCriterion phase order -> ValidityCriterion phase order -> ValidityCriterion phase order #

Show (ValidityCriterion phase order) Source # 

Methods

showsPrec :: Int -> ValidityCriterion phase order -> ShowS #

show :: ValidityCriterion phase order -> String #

showList :: [ValidityCriterion phase order] -> ShowS #

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 #