constrained-generators-0.2.0.0: Framework for generating constrained random data using a subset of first order logic
Safe HaskellSafe-Inferred
LanguageHaskell2010

Constrained.Spec.Map

Synopsis

Documentation

data MapSpec k v Source #

Constructors

MapSpec 

Fields

Instances

Instances details
(HasSpec (k, v), HasSpec k, HasSpec v, HasSpec [v]) ⇒ Pretty (WithPrec (MapSpec k v)) Source # 
Instance details

Defined in Constrained.Spec.Map

Methods

prettyWithPrec (MapSpec k v) → Doc ann Source #

prettyList ∷ [WithPrec (MapSpec k v)] → Doc ann Source #

(Arbitrary k, Arbitrary v, Arbitrary (TypeSpec k), Arbitrary (TypeSpec v), Ord k, HasSpec k, Foldy v) ⇒ Arbitrary (MapSpec k v) Source # 
Instance details

Defined in Constrained.Spec.Map

Methods

arbitraryGen (MapSpec k v) Source #

shrinkMapSpec k v → [MapSpec k v] Source #

Generic (MapSpec k v) Source # 
Instance details

Defined in Constrained.Spec.Map

Associated Types

type Rep (MapSpec k v) ∷ Type → Type

Methods

fromMapSpec k v → Rep (MapSpec k v) x

to ∷ Rep (MapSpec k v) x → MapSpec k v

(HasSpec (k, v), HasSpec k, HasSpec v, HasSpec [v]) ⇒ Show (MapSpec k v) Source # 
Instance details

Defined in Constrained.Spec.Map

Methods

showsPrec ∷ Int → MapSpec k v → ShowS

showMapSpec k v → String

showList ∷ [MapSpec k v] → ShowS

type Rep (MapSpec k v) Source # 
Instance details

Defined in Constrained.Spec.Map

type Rep (MapSpec k v) = D1 ('MetaData "MapSpec" "Constrained.Spec.Map" "constrained-generators-0.2.0.0-inplace" 'False) (C1 ('MetaCons "MapSpec" 'PrefixI 'True) ((S1 ('MetaSel ('Just "mapSpecHint") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer)) :*: (S1 ('MetaSel ('Just "mapSpecMustKeys") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set k)) :*: S1 ('MetaSel ('Just "mapSpecMustValues") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [v]))) :*: (S1 ('MetaSel ('Just "mapSpecSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Specification Integer)) :*: (S1 ('MetaSel ('Just "mapSpecElem") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Specification (k, v))) :*: S1 ('MetaSel ('Just "mapSpecFold") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FoldSpec v))))))

defaultMapSpec ∷ Ord k ⇒ MapSpec k v Source #

emptySpec without all the constraints

fstSpec ∷ ∀ k v. (HasSpec k, HasSpec v) ⇒ Specification (k, v) → Specification k Source #

sndSpec ∷ ∀ k v. (HasSpec k, HasSpec v) ⇒ Specification (k, v) → Specification v Source #

data MapW (dom ∷ [Type]) (rng ∷ Type) where Source #

Constructors

DomW ∷ (HasSpec k, HasSpec v, IsNormalType k, IsNormalType v, Ord k) ⇒ MapW '[Map k v] (Set k) 
RngW ∷ (HasSpec k, HasSpec v, IsNormalType k, IsNormalType v, Ord k) ⇒ MapW '[Map k v] [v] 
LookupW ∷ (HasSpec k, HasSpec v, IsNormalType k, IsNormalType v, Ord k) ⇒ MapW '[k, Map k v] (Maybe v) 

Instances

Instances details
Logic MapW Source # 
Instance details

Defined in Constrained.Spec.Map

Methods

propagateTypeSpec ∷ ∀ (as ∷ [Type]) b a. (AppRequires MapW as b, HasSpec a) ⇒ MapW as b → ListCtx Value as (HOLE a) → TypeSpec b → [b] → Specification a Source #

propagateMemberSpec ∷ ∀ (as ∷ [Type]) b a. (AppRequires MapW as b, HasSpec a) ⇒ MapW as b → ListCtx Value as (HOLE a) → NonEmpty b → Specification a Source #

propagate ∷ ∀ (as ∷ [Type]) b a. (AppRequires MapW as b, HasSpec a) ⇒ MapW as b → ListCtx Value as (HOLE a) → Specification b → Specification a Source #

rewriteRules ∷ ∀ (dom ∷ [Type]) rng. (TypeList dom, Typeable dom, HasSpec rng, All HasSpec dom) ⇒ MapW dom rng → List Term dom → Evidence (AppRequires MapW dom rng) → Maybe (Term rng) Source #

mapTypeSpec ∷ (HasSpec a, HasSpec b) ⇒ MapW '[a] b → TypeSpec a → Specification b Source #

saturate ∷ ∀ (dom ∷ [Type]). MapW dom Bool → List Term dom → [Pred] Source #

Semantics MapW Source # 
Instance details

Defined in Constrained.Spec.Map

Methods

semantics ∷ ∀ (d ∷ [Type]) r. MapW d r → FunTy d r Source #

Syntax MapW Source # 
Instance details

Defined in Constrained.Spec.Map

Methods

inFix ∷ ∀ (dom ∷ [Type]) rng. MapW dom rng → Bool Source #

prettyWit ∷ ∀ (dom ∷ [Type]) rng ann. (All HasSpec dom, HasSpec rng) ⇒ MapW dom rng → List Term dom → Int → Maybe (Doc ann) Source #

Show (MapW d r) Source # 
Instance details

Defined in Constrained.Spec.Map

Methods

showsPrec ∷ Int → MapW d r → ShowS

showMapW d r → String

showList ∷ [MapW d r] → ShowS

Eq (MapW dom rng) Source # 
Instance details

Defined in Constrained.Spec.Map

Methods

(==)MapW dom rng → MapW dom rng → Bool

(/=)MapW dom rng → MapW dom rng → Bool

mapSemMapW d r → FunTy d r Source #

dom_ ∷ (HasSpec (Map k v), HasSpec v, HasSpec k, Ord k, IsNormalType k, IsNormalType v) ⇒ Term (Map k v) → Term (Set k) Source #

rng_ ∷ (HasSpec k, HasSpec v, Ord k, IsNormalType k, IsNormalType v) ⇒ Term (Map k v) → Term [v] Source #

lookup_ ∷ (HasSpec k, HasSpec v, Ord k, IsNormalType k, IsNormalType v) ⇒ Term k → Term (Map k v) → Term (Maybe v) Source #

Orphan instances

Arbitrary (FoldSpec (Map k v)) Source # 
Instance details

Methods

arbitraryGen (FoldSpec (Map k v)) Source #

shrinkFoldSpec (Map k v) → [FoldSpec (Map k v)] Source #

(Ord k, HasSpec k, HasSpec v, HasSpec [v], IsNormalType k, IsNormalType v) ⇒ HasGenHint (Map k v) Source # 
Instance details

Associated Types

type Hint (Map k v) Source #

Methods

giveHintHint (Map k v) → Specification (Map k v) Source #

(Ord k, HasSpec (Prod k v), HasSpec k, HasSpec v, HasSpec [v], IsNormalType k, IsNormalType v) ⇒ HasSpec (Map k v) Source # 
Instance details

Associated Types

type TypeSpec (Map k v) Source #

type Prerequisites (Map k v) Source #

Methods

emptySpecTypeSpec (Map k v) Source #

combineSpecTypeSpec (Map k v) → TypeSpec (Map k v) → Specification (Map k v) Source #

genFromTypeSpec ∷ ∀ (m ∷ Type → Type). (HasCallStack, MonadGenError m) ⇒ TypeSpec (Map k v) → GenT m (Map k v) Source #

conformsTo ∷ Map k v → TypeSpec (Map k v) → Bool Source #

shrinkWithTypeSpecTypeSpec (Map k v) → Map k v → [Map k v] Source #

toPredsTerm (Map k v) → TypeSpec (Map k v) → Pred Source #

cardinalTypeSpecTypeSpec (Map k v) → Specification Integer Source #

cardinalTrueSpecSpecification Integer Source #

typeSpecHasErrorTypeSpec (Map k v) → Maybe (NonEmpty String) Source #

alternateShowTypeSpec (Map k v) → BinaryShow Source #

monadConformsTo ∷ Map k v → TypeSpec (Map k v) → Writer [String] Bool Source #

typeSpecOptTypeSpec (Map k v) → [Map k v] → Specification (Map k v) Source #

guardTypeSpec ∷ [String] → TypeSpec (Map k v) → Specification (Map k v) Source #

prerequisitesEvidence (Prerequisites (Map k v)) Source #

Ord a ⇒ Sized (Map a b) Source # 
Instance details

Methods

sizeOf ∷ Map a b → Integer Source #

liftSizeSpecSizeSpec → [Integer] → Specification (Map a b) Source #

liftMemberSpec ∷ [Integer] → Specification (Map a b) Source #

sizeOfTypeSpecTypeSpec (Map a b) → Specification Integer Source #

Ord k ⇒ Forallable (Map k v) (k, v) Source # 
Instance details

Methods

fromForAllSpecSpecification (k, v) → Specification (Map k v) Source #

forAllToList ∷ Map k v → [(k, v)] Source #