Skip to content

Commit

Permalink
[Builtins] Make 'geq' inlinable
Browse files Browse the repository at this point in the history
  • Loading branch information
effectfully committed Jan 21, 2023
1 parent ff72adc commit 9d41dd4
Showing 1 changed file with 38 additions and 1 deletion.
39 changes: 38 additions & 1 deletion plutus-core/plutus-core/src/PlutusCore/Default/Universe.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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 <- f1 `geqRec` f2
Refl <- x1 `geqRec` 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.
Expand Down

0 comments on commit 9d41dd4

Please sign in to comment.