| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
PlutusIR.Transform.CollapseCase
Description
A top-down pass converting 2 or more consecutive casing on lists, if the heads are all unused, and the tails are all unused except for being immediately matched on.
Example:
case xs of _h1 t1 -> case t1 of _h2 t2 -> case t2 of _h3 t3 -> case t3 of _h4 t4 -> case t4 of h5 t5 -> ...t5...
>
case (drop 4 xs) of h5 t5 -> ...t5...
Documentation
collapseCase ∷ ∀ name uni fun a. (uni ~ DefaultUni, fun ~ DefaultFun, HasUnique name TermUnique, AnnCase a) ⇒ Term TyName name uni fun a → Term TyName name uni fun a Source #
collapseCasePassSC ∷ (uni ~ DefaultUni, fun ~ DefaultFun, Applicative m, AnnCase a) ⇒ PirTCConfig uni fun → Pass m TyName Name uni fun a Source #