Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
PlutusTx.Test.Util.Compiled
Synopsis
- type Program = Program NamedDeBruijn DefaultUni DefaultFun ()
- type Term = Term NamedDeBruijn DefaultUni DefaultFun ()
- toAnonDeBruijnTerm ∷ Term → Term DeBruijn DefaultUni DefaultFun ()
- toAnonDeBruijnProg ∷ Program NamedDeBruijn DefaultUni DefaultFun () → Program DeBruijn DefaultUni DefaultFun ()
- toNamedDeBruijnTerm ∷ Term DeBruijn DefaultUni DefaultFun () → Term NamedDeBruijn DefaultUni DefaultFun ()
- compiledCodeToTerm ∷ CompiledCodeIn DefaultUni DefaultFun a → Term
- cekResultMatchesHaskellValue ∷ Lift DefaultUni hask ⇒ Term → (∀ r. (Eq r, Show r) ⇒ r → r → k) → hask → k
Documentation
type Program = Program NamedDeBruijn DefaultUni DefaultFun () Source #
type Term = Term NamedDeBruijn DefaultUni DefaultFun () Source #
toAnonDeBruijnTerm ∷ Term → Term DeBruijn DefaultUni DefaultFun () Source #
Remove the textual names from a NamedDeBruijn term
toAnonDeBruijnProg ∷ Program NamedDeBruijn DefaultUni DefaultFun () → Program DeBruijn DefaultUni DefaultFun () Source #
toNamedDeBruijnTerm ∷ Term DeBruijn DefaultUni DefaultFun () → Term NamedDeBruijn DefaultUni DefaultFun () Source #
Given a DeBruijn-named term, give every variable the name "v". If we later call unDeBruijn, that will rename the variables to things like "v123", where 123 is the relevant de Bruijn index.
compiledCodeToTerm ∷ CompiledCodeIn DefaultUni DefaultFun a → Term Source #
Just extract the body of a program wrapped in a CompiledCodeIn
.
We use this a lot.
cekResultMatchesHaskellValue ∷ Lift DefaultUni hask ⇒ Term → (∀ r. (Eq r, Show r) ⇒ r → r → k) → hask → k Source #
Evaluate a PLC term and check that the result matches a given Haskell value (perhaps obtained by running the Haskell code that the term was compiled from). We evaluate the lifted Haskell value as well, because lifting may produce reducible terms. The function is polymorphic in the comparison operator so that we can use it with both HUnit Assertions and QuickCheck Properties.