Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
PlutusCore.Generators.Hedgehog.AST
Synopsis
- simpleRecursive ∷ MonadGen m ⇒ [m a] → [m a] → m a
- regenConstantUntil ∷ MonadGen m ⇒ (Some (ValueOf DefaultUni) → Bool) → Some (ValueOf DefaultUni) → m (Maybe (Some (ValueOf DefaultUni)))
- regenConstantsUntil ∷ MonadGen m ⇒ (Some (ValueOf DefaultUni) → Bool) → Program tyname name DefaultUni fun ann → m (Program tyname name DefaultUni fun ann)
- type AstGen = GenT (Reader [Name])
- runAstGen ∷ MonadGen m ⇒ AstGen a → m a
- genVersion ∷ MonadGen m ⇒ m Version
- genNames ∷ MonadGen m ⇒ m [Name]
- genName ∷ AstGen Name
- genTyName ∷ AstGen TyName
- genKind ∷ AstGen (Kind ())
- genBuiltin ∷ (MonadGen m, Bounded fun, Enum fun) ⇒ m fun
- genConstant ∷ MonadGen m ⇒ m (Some (ValueOf DefaultUni))
- genType ∷ AstGen (Type TyName DefaultUni ())
- genTerm ∷ ∀ fun. (Bounded fun, Enum fun) ⇒ AstGen (Term TyName Name DefaultUni fun ())
- genProgram ∷ ∀ fun. (Bounded fun, Enum fun) ⇒ AstGen (Program TyName Name DefaultUni fun ())
- genNameMangler ∷ Set Name → AstGen (Name → AstGen (Maybe Name))
- mangleNames ∷ Term TyName Name DefaultUni DefaultFun () → AstGen (Term TyName Name DefaultUni DefaultFun ())
Documentation
simpleRecursive ∷ MonadGen m ⇒ [m a] → [m a] → m a Source #
regenConstantUntil ∷ MonadGen m ⇒ (Some (ValueOf DefaultUni) → Bool) → Some (ValueOf DefaultUni) → m (Maybe (Some (ValueOf DefaultUni))) Source #
regenConstantsUntil ∷ MonadGen m ⇒ (Some (ValueOf DefaultUni) → Bool) → Program tyname name DefaultUni fun ann → m (Program tyname name DefaultUni fun ann) Source #
Replace all constants in a program failing the given predicate with newly generated ones that are guaranteed to satisfy the predicate (if such constants cannot be generated, this generator will fail).
type AstGen = GenT (Reader [Name]) Source #
The monad that generators run in. The environment is a list of names to choose from for generation of variables and binders.
genVersion ∷ MonadGen m ⇒ m Version Source #
genNames ∷ MonadGen m ⇒ m [Name] Source #
Generate a fixed set of names which we will use, of only up to a short size to make it
likely that we get reuse.
We do not attempt not to generate reserved words such as all
or abs
as the classic syntax
parsers (both PLC and PIR ones) can handle names of variables clashing with reserved words.
In the readable syntax that would be troubling, though, but we don't have a parser for that anyway.
genConstant ∷ MonadGen m ⇒ m (Some (ValueOf DefaultUni)) Source #
genProgram ∷ ∀ fun. (Bounded fun, Enum fun) ⇒ AstGen (Program TyName Name DefaultUni fun ()) Source #
mangleNames ∷ Term TyName Name DefaultUni DefaultFun () → AstGen (Term TyName Name DefaultUni DefaultFun ()) Source #