| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Transform.CaseOfCase.Spec
Synopsis
- test_caseOfCase ∷ TestTree
- caseOfCase1 ∷ Term Name DefaultUni DefaultFun ()
- caseOfCase2 ∷ Term Name DefaultUni DefaultFun ()
- caseOfCase3 ∷ Term Name DefaultUni DefaultFun ()
- caseOfCaseWithError ∷ Term Name DefaultUni DefaultFun ()
- testCaseOfCaseWithError ∷ TestTree
- evalCaseOfCase ∷ Term Name DefaultUni DefaultFun () → Term Name DefaultUni DefaultFun ()
- evaluateUplc ∷ Term Name DefaultUni DefaultFun () → EvaluationResult (Term Name DefaultUni DefaultFun ())
- goldenVsSimplified ∷ String → Term Name DefaultUni DefaultFun () → TestTree
Documentation
caseOfCase2 ∷ Term Name DefaultUni DefaultFun () Source #
This should not simplify, because one of the branches of ifThenElse is not a Constr.
Unless both branches are known constructors, the case-of-case transformation
may increase the program size.
caseOfCase3 ∷ Term Name DefaultUni DefaultFun () Source #
Similar to caseOfCase1, but the type of the true and false branches is
[Integer] rather than Bool (note that Constr 0 has two parameters, x and xs).
caseOfCaseWithError ∷ Term Name DefaultUni DefaultFun () Source #
case (force ifThenElse) True True False of
True -> ()
False -> _|_
Evaluates to () because the first case alternative is selected.
(The _|_ is not evaluated because case alternatives are evaluated lazily).
After the CaseOfCase transformation the program should evaluate to () as well.
force ((force ifThenElse) True (delay ()) (delay _|_))
evalCaseOfCase ∷ Term Name DefaultUni DefaultFun () → Term Name DefaultUni DefaultFun () Source #
evaluateUplc ∷ Term Name DefaultUni DefaultFun () → EvaluationResult (Term Name DefaultUni DefaultFun ()) Source #
goldenVsSimplified ∷ String → Term Name DefaultUni DefaultFun () → TestTree Source #