Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Builtins] Make 'geq' inlinable
Browse files Browse the repository at this point in the history
effectfully committed Feb 9, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent e00e617 commit 758965f
Showing 1 changed file with 39 additions and 2 deletions.
41 changes: 39 additions & 2 deletions plutus-core/plutus-core/src/PlutusCore/Default/Universe.hs
Original file line number Diff line number Diff line change
@@ -49,7 +49,7 @@ import Data.IntCast (intCastEq)
import Data.Proxy
import Data.Text qualified as Text
import Data.Word
import GHC.Exts (inline, oneShot)
import GHC.Exts (inline, noinline, oneShot)
import Text.Pretty
import Text.PrettyBy
import Text.PrettyBy.Fixity
@@ -109,7 +109,44 @@ pattern DefaultUniList uniA =
pattern DefaultUniPair uniA uniB =
DefaultUniProtoPair `DefaultUniApply` uniA `DefaultUniApply` uniB

deriveGEq ''DefaultUni
instance GEq DefaultUni where
geq = geqStep where
geqStep :: DefaultUni a1 -> DefaultUni a2 -> Maybe (a1 :~: a2)
geqStep DefaultUniInteger a2 = do
DefaultUniInteger <- Just a2
Just Refl
geqStep DefaultUniByteString a2 = do
DefaultUniByteString <- Just a2
Just Refl
geqStep DefaultUniString a2 = do
DefaultUniString <- Just a2
Just Refl
geqStep DefaultUniUnit a2 = do
DefaultUniUnit <- Just a2
Just Refl
geqStep DefaultUniBool a2 = do
DefaultUniBool <- Just a2
Just Refl
geqStep DefaultUniProtoList a2 = do
DefaultUniProtoList <- Just a2
Just Refl
geqStep DefaultUniProtoPair a2 = do
DefaultUniProtoPair <- Just a2
Just Refl
geqStep (DefaultUniApply f1 x1) a2 = do
DefaultUniApply f2 x2 <- Just a2
Refl <- noinline geqRec f1 f2
Refl <- noinline geqRec x1 x2
Just Refl
geqStep DefaultUniData a2 = do
DefaultUniData <- Just a2
Just Refl
{-# INLINE geqStep #-}

geqRec :: DefaultUni a1 -> DefaultUni a2 -> Maybe (a1 :~: a2)
geqRec = geqStep
{-# NOINLINE geqRec #-}

deriveGCompare ''DefaultUni

-- | For pleasing the coverage checker.

0 comments on commit 758965f

Please sign in to comment.