{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE InstanceSigs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
module PlutusCore.Default.Builtins where
import PlutusPrelude
import PlutusCore.Builtin
import PlutusCore.Data (Data (..))
import PlutusCore.Default.Universe
import PlutusCore.Default.Universe.Cardano
import PlutusCore.Evaluation.Machine.BuiltinCostModel
import PlutusCore.Evaluation.Machine.ExBudgetStream (ExBudgetStream)
import PlutusCore.Evaluation.Machine.ExMemoryUsage
( DataNodeCount (..)
, ExMemoryUsage
, IntegerCostedLiterally (..)
, NumBytesCostedAsNumWords (..)
, TextCostedByByteLength (..)
, ValueMaxDepth (..)
, ValueTotalSize (..)
, memoryUsage
, singletonRose
)
import PlutusCore.Pretty (PrettyConfigPlc)
import PlutusCore.Value (Value)
import PlutusCore.Value qualified as Value
import PlutusCore.Bitwise qualified as Bitwise
import PlutusCore.Crypto.BLS12_381.G1 qualified as BLS12_381.G1
import PlutusCore.Crypto.BLS12_381.G2 qualified as BLS12_381.G2
import PlutusCore.Crypto.BLS12_381.Pairing qualified as BLS12_381.Pairing
import PlutusCore.Crypto.Ed25519 (verifyEd25519Signature)
import PlutusCore.Crypto.ExpMod qualified as ExpMod
import PlutusCore.Crypto.Hash qualified as Hash
import PlutusCore.Crypto.Secp256k1
( verifyEcdsaSecp256k1Signature
, verifySchnorrSecp256k1Signature
)
import Codec.Serialise (serialise)
import Control.Monad.Except (throwError)
import Data.ByteString (ByteString)
import Data.ByteString qualified as BS
import Data.ByteString.Lazy qualified as BSL
import Data.ByteString.Short qualified as SBS
import Data.Ix (Ix)
import Data.Text qualified as Text
import Data.Text.Array (pattern ByteArray)
import Data.Text.Encoding (encodeUtf8)
import Data.Text.Internal (Text (Text))
import Data.Vector.Strict (Vector)
import Data.Vector.Strict qualified as Vector
import GHC.Natural (naturalFromInteger)
import GHC.Num.Integer (Integer (..))
import GHC.Types (Int (..))
import NoThunks.Class (NoThunks)
import PlutusCore.Flat hiding
( from
, to
)
import PlutusCore.Flat.Decoder (Get, dBEBits8)
import PlutusCore.Flat.Encoder as Flat
( Encoding
, NumBits
, eBits
)
import Prettyprinter (viaShow)
data DefaultFun
=
AddInteger
| SubtractInteger
| MultiplyInteger
| DivideInteger
| QuotientInteger
| RemainderInteger
| ModInteger
| EqualsInteger
| LessThanInteger
| LessThanEqualsInteger
|
AppendByteString
| ConsByteString
| SliceByteString
| LengthOfByteString
| IndexByteString
| EqualsByteString
| LessThanByteString
| LessThanEqualsByteString
|
Sha2_256
| Sha3_256
| Blake2b_256
| VerifyEd25519Signature
| VerifyEcdsaSecp256k1Signature
| VerifySchnorrSecp256k1Signature
|
AppendString
| EqualsString
| EncodeUtf8
| DecodeUtf8
|
IfThenElse
|
ChooseUnit
|
Trace
|
FstPair
| SndPair
|
ChooseList
| MkCons
| HeadList
| TailList
| NullList
|
ChooseData
| ConstrData
| MapData
| ListData
| IData
| BData
| UnConstrData
| UnMapData
| UnListData
| UnIData
| UnBData
| EqualsData
| SerialiseData
|
MkPairData
| MkNilData
| MkNilPairData
|
Bls12_381_G1_add
| Bls12_381_G1_neg
| Bls12_381_G1_scalarMul
| Bls12_381_G1_equal
| Bls12_381_G1_hashToGroup
| Bls12_381_G1_compress
| Bls12_381_G1_uncompress
|
Bls12_381_G2_add
| Bls12_381_G2_neg
| Bls12_381_G2_scalarMul
| Bls12_381_G2_equal
| Bls12_381_G2_hashToGroup
| Bls12_381_G2_compress
| Bls12_381_G2_uncompress
|
Bls12_381_millerLoop
| Bls12_381_mulMlResult
| Bls12_381_finalVerify
|
Keccak_256
| Blake2b_224
|
IntegerToByteString
| ByteStringToInteger
|
AndByteString
| OrByteString
| XorByteString
| ComplementByteString
| ReadBit
| WriteBits
| ReplicateByte
|
ShiftByteString
| RotateByteString
| CountSetBits
| FindFirstSetBit
|
Ripemd_160
|
ExpModInteger
| DropList
|
LengthOfArray
| ListToArray
| IndexArray
|
Bls12_381_G1_multiScalarMul
| Bls12_381_G2_multiScalarMul
|
InsertCoin
| LookupCoin
| UnionValue
| ValueContains
| ValueData
| UnValueData
| ScaleValue
deriving stock (Int -> DefaultFun -> ShowS
[DefaultFun] -> ShowS
DefaultFun -> String
(Int -> DefaultFun -> ShowS)
-> (DefaultFun -> String)
-> ([DefaultFun] -> ShowS)
-> Show DefaultFun
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DefaultFun -> ShowS
showsPrec :: Int -> DefaultFun -> ShowS
$cshow :: DefaultFun -> String
show :: DefaultFun -> String
$cshowList :: [DefaultFun] -> ShowS
showList :: [DefaultFun] -> ShowS
Show, DefaultFun -> DefaultFun -> Bool
(DefaultFun -> DefaultFun -> Bool)
-> (DefaultFun -> DefaultFun -> Bool) -> Eq DefaultFun
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DefaultFun -> DefaultFun -> Bool
== :: DefaultFun -> DefaultFun -> Bool
$c/= :: DefaultFun -> DefaultFun -> Bool
/= :: DefaultFun -> DefaultFun -> Bool
Eq, Eq DefaultFun
Eq DefaultFun =>
(DefaultFun -> DefaultFun -> Ordering)
-> (DefaultFun -> DefaultFun -> Bool)
-> (DefaultFun -> DefaultFun -> Bool)
-> (DefaultFun -> DefaultFun -> Bool)
-> (DefaultFun -> DefaultFun -> Bool)
-> (DefaultFun -> DefaultFun -> DefaultFun)
-> (DefaultFun -> DefaultFun -> DefaultFun)
-> Ord DefaultFun
DefaultFun -> DefaultFun -> Bool
DefaultFun -> DefaultFun -> Ordering
DefaultFun -> DefaultFun -> DefaultFun
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: DefaultFun -> DefaultFun -> Ordering
compare :: DefaultFun -> DefaultFun -> Ordering
$c< :: DefaultFun -> DefaultFun -> Bool
< :: DefaultFun -> DefaultFun -> Bool
$c<= :: DefaultFun -> DefaultFun -> Bool
<= :: DefaultFun -> DefaultFun -> Bool
$c> :: DefaultFun -> DefaultFun -> Bool
> :: DefaultFun -> DefaultFun -> Bool
$c>= :: DefaultFun -> DefaultFun -> Bool
>= :: DefaultFun -> DefaultFun -> Bool
$cmax :: DefaultFun -> DefaultFun -> DefaultFun
max :: DefaultFun -> DefaultFun -> DefaultFun
$cmin :: DefaultFun -> DefaultFun -> DefaultFun
min :: DefaultFun -> DefaultFun -> DefaultFun
Ord, Int -> DefaultFun
DefaultFun -> Int
DefaultFun -> [DefaultFun]
DefaultFun -> DefaultFun
DefaultFun -> DefaultFun -> [DefaultFun]
DefaultFun -> DefaultFun -> DefaultFun -> [DefaultFun]
(DefaultFun -> DefaultFun)
-> (DefaultFun -> DefaultFun)
-> (Int -> DefaultFun)
-> (DefaultFun -> Int)
-> (DefaultFun -> [DefaultFun])
-> (DefaultFun -> DefaultFun -> [DefaultFun])
-> (DefaultFun -> DefaultFun -> [DefaultFun])
-> (DefaultFun -> DefaultFun -> DefaultFun -> [DefaultFun])
-> Enum DefaultFun
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: DefaultFun -> DefaultFun
succ :: DefaultFun -> DefaultFun
$cpred :: DefaultFun -> DefaultFun
pred :: DefaultFun -> DefaultFun
$ctoEnum :: Int -> DefaultFun
toEnum :: Int -> DefaultFun
$cfromEnum :: DefaultFun -> Int
fromEnum :: DefaultFun -> Int
$cenumFrom :: DefaultFun -> [DefaultFun]
enumFrom :: DefaultFun -> [DefaultFun]
$cenumFromThen :: DefaultFun -> DefaultFun -> [DefaultFun]
enumFromThen :: DefaultFun -> DefaultFun -> [DefaultFun]
$cenumFromTo :: DefaultFun -> DefaultFun -> [DefaultFun]
enumFromTo :: DefaultFun -> DefaultFun -> [DefaultFun]
$cenumFromThenTo :: DefaultFun -> DefaultFun -> DefaultFun -> [DefaultFun]
enumFromThenTo :: DefaultFun -> DefaultFun -> DefaultFun -> [DefaultFun]
Enum, DefaultFun
DefaultFun -> DefaultFun -> Bounded DefaultFun
forall a. a -> a -> Bounded a
$cminBound :: DefaultFun
minBound :: DefaultFun
$cmaxBound :: DefaultFun
maxBound :: DefaultFun
Bounded, (forall x. DefaultFun -> Rep DefaultFun x)
-> (forall x. Rep DefaultFun x -> DefaultFun) -> Generic DefaultFun
forall x. Rep DefaultFun x -> DefaultFun
forall x. DefaultFun -> Rep DefaultFun x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. DefaultFun -> Rep DefaultFun x
from :: forall x. DefaultFun -> Rep DefaultFun x
$cto :: forall x. Rep DefaultFun x -> DefaultFun
to :: forall x. Rep DefaultFun x -> DefaultFun
Generic, Ord DefaultFun
Ord DefaultFun =>
((DefaultFun, DefaultFun) -> [DefaultFun])
-> ((DefaultFun, DefaultFun) -> DefaultFun -> Int)
-> ((DefaultFun, DefaultFun) -> DefaultFun -> Int)
-> ((DefaultFun, DefaultFun) -> DefaultFun -> Bool)
-> ((DefaultFun, DefaultFun) -> Int)
-> ((DefaultFun, DefaultFun) -> Int)
-> Ix DefaultFun
(DefaultFun, DefaultFun) -> Int
(DefaultFun, DefaultFun) -> [DefaultFun]
(DefaultFun, DefaultFun) -> DefaultFun -> Bool
(DefaultFun, DefaultFun) -> DefaultFun -> Int
forall a.
Ord a =>
((a, a) -> [a])
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Bool)
-> ((a, a) -> Int)
-> ((a, a) -> Int)
-> Ix a
$crange :: (DefaultFun, DefaultFun) -> [DefaultFun]
range :: (DefaultFun, DefaultFun) -> [DefaultFun]
$cindex :: (DefaultFun, DefaultFun) -> DefaultFun -> Int
index :: (DefaultFun, DefaultFun) -> DefaultFun -> Int
$cunsafeIndex :: (DefaultFun, DefaultFun) -> DefaultFun -> Int
unsafeIndex :: (DefaultFun, DefaultFun) -> DefaultFun -> Int
$cinRange :: (DefaultFun, DefaultFun) -> DefaultFun -> Bool
inRange :: (DefaultFun, DefaultFun) -> DefaultFun -> Bool
$crangeSize :: (DefaultFun, DefaultFun) -> Int
rangeSize :: (DefaultFun, DefaultFun) -> Int
$cunsafeRangeSize :: (DefaultFun, DefaultFun) -> Int
unsafeRangeSize :: (DefaultFun, DefaultFun) -> Int
Ix)
deriving anyclass (DefaultFun -> ()
(DefaultFun -> ()) -> NFData DefaultFun
forall a. (a -> ()) -> NFData a
$crnf :: DefaultFun -> ()
rnf :: DefaultFun -> ()
NFData, Eq DefaultFun
Eq DefaultFun =>
(Int -> DefaultFun -> Int)
-> (DefaultFun -> Int) -> Hashable DefaultFun
Int -> DefaultFun -> Int
DefaultFun -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> DefaultFun -> Int
hashWithSalt :: Int -> DefaultFun -> Int
$chash :: DefaultFun -> Int
hash :: DefaultFun -> Int
Hashable, PrettyBy PrettyConfigPlc)
instance Pretty DefaultFun where
pretty :: forall ann. DefaultFun -> Doc ann
pretty DefaultFun
fun = String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (String -> Doc ann) -> String -> Doc ann
forall a b. (a -> b) -> a -> b
$ ShowS
lowerInitialChar ShowS -> ShowS
forall a b. (a -> b) -> a -> b
$ DefaultFun -> String
forall a. Show a => a -> String
show DefaultFun
fun
instance ExMemoryUsage DefaultFun where
memoryUsage :: DefaultFun -> CostRose
memoryUsage DefaultFun
_ = CostingInteger -> CostRose
singletonRose CostingInteger
1
{-# INLINE memoryUsage #-}
nonZeroSecondArg
:: (Integer -> Integer -> Integer) -> Integer -> Integer -> BuiltinResult Integer
nonZeroSecondArg :: (Integer -> Integer -> Integer)
-> Integer -> Integer -> BuiltinResult Integer
nonZeroSecondArg Integer -> Integer -> Integer
_ !Integer
_ Integer
0 =
String -> BuiltinResult Integer
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Cannot divide by zero"
nonZeroSecondArg Integer -> Integer -> Integer
f Integer
x Integer
y = Integer -> BuiltinResult Integer
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Integer -> BuiltinResult Integer)
-> Integer -> BuiltinResult Integer
forall a b. (a -> b) -> a -> b
$ Integer -> Integer -> Integer
f Integer
x Integer
y
{-# INLINE nonZeroSecondArg #-}
eitherToBuiltinResult :: Show e => Either e r -> BuiltinResult r
eitherToBuiltinResult :: forall e r. Show e => Either e r -> BuiltinResult r
eitherToBuiltinResult = (e -> BuiltinResult r)
-> (r -> BuiltinResult r) -> Either e r -> BuiltinResult r
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (String -> BuiltinResult r
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String -> BuiltinResult r)
-> (e -> String) -> e -> BuiltinResult r
forall b c a. (b -> c) -> (a -> b) -> a -> c
. e -> String
forall a. Show a => a -> String
show) r -> BuiltinResult r
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure
{-# INLINE eitherToBuiltinResult #-}
instance uni ~ DefaultUni => ToBuiltinMeaning uni DefaultFun where
type CostingPart uni DefaultFun = BuiltinCostModel
data BuiltinSemanticsVariant DefaultFun
= DefaultFunSemanticsVariantA
| DefaultFunSemanticsVariantB
| DefaultFunSemanticsVariantC
| DefaultFunSemanticsVariantD
| DefaultFunSemanticsVariantE
deriving stock (BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool
(BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool)
-> (BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool)
-> Eq (BuiltinSemanticsVariant DefaultFun)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool
== :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool
$c/= :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool
/= :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool
Eq, Eq (BuiltinSemanticsVariant DefaultFun)
Eq (BuiltinSemanticsVariant DefaultFun) =>
(BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Ordering)
-> (BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool)
-> (BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool)
-> (BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool)
-> (BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool)
-> (BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun)
-> (BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun)
-> Ord (BuiltinSemanticsVariant DefaultFun)
BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool
BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Ordering
BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Ordering
compare :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Ordering
$c< :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool
< :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool
$c<= :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool
<= :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool
$c> :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool
> :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool
$c>= :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool
>= :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun -> Bool
$cmax :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
max :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
$cmin :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
min :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
Ord, Int -> BuiltinSemanticsVariant DefaultFun
BuiltinSemanticsVariant DefaultFun -> Int
BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun]
BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun]
BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun]
(BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun)
-> (BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun)
-> (Int -> BuiltinSemanticsVariant DefaultFun)
-> (BuiltinSemanticsVariant DefaultFun -> Int)
-> (BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun])
-> (BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun])
-> (BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun])
-> (BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun])
-> Enum (BuiltinSemanticsVariant DefaultFun)
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
succ :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
$cpred :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
pred :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
$ctoEnum :: Int -> BuiltinSemanticsVariant DefaultFun
toEnum :: Int -> BuiltinSemanticsVariant DefaultFun
$cfromEnum :: BuiltinSemanticsVariant DefaultFun -> Int
fromEnum :: BuiltinSemanticsVariant DefaultFun -> Int
$cenumFrom :: BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun]
enumFrom :: BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun]
$cenumFromThen :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun]
enumFromThen :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun]
$cenumFromTo :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun]
enumFromTo :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun]
$cenumFromThenTo :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun]
enumFromThenTo :: BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> [BuiltinSemanticsVariant DefaultFun]
Enum, BuiltinSemanticsVariant DefaultFun
BuiltinSemanticsVariant DefaultFun
-> BuiltinSemanticsVariant DefaultFun
-> Bounded (BuiltinSemanticsVariant DefaultFun)
forall a. a -> a -> Bounded a
$cminBound :: BuiltinSemanticsVariant DefaultFun
minBound :: BuiltinSemanticsVariant DefaultFun
$cmaxBound :: BuiltinSemanticsVariant DefaultFun
maxBound :: BuiltinSemanticsVariant DefaultFun
Bounded, Int -> BuiltinSemanticsVariant DefaultFun -> ShowS
[BuiltinSemanticsVariant DefaultFun] -> ShowS
BuiltinSemanticsVariant DefaultFun -> String
(Int -> BuiltinSemanticsVariant DefaultFun -> ShowS)
-> (BuiltinSemanticsVariant DefaultFun -> String)
-> ([BuiltinSemanticsVariant DefaultFun] -> ShowS)
-> Show (BuiltinSemanticsVariant DefaultFun)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> BuiltinSemanticsVariant DefaultFun -> ShowS
showsPrec :: Int -> BuiltinSemanticsVariant DefaultFun -> ShowS
$cshow :: BuiltinSemanticsVariant DefaultFun -> String
show :: BuiltinSemanticsVariant DefaultFun -> String
$cshowList :: [BuiltinSemanticsVariant DefaultFun] -> ShowS
showList :: [BuiltinSemanticsVariant DefaultFun] -> ShowS
Show, (forall x.
BuiltinSemanticsVariant DefaultFun
-> Rep (BuiltinSemanticsVariant DefaultFun) x)
-> (forall x.
Rep (BuiltinSemanticsVariant DefaultFun) x
-> BuiltinSemanticsVariant DefaultFun)
-> Generic (BuiltinSemanticsVariant DefaultFun)
forall x.
Rep (BuiltinSemanticsVariant DefaultFun) x
-> BuiltinSemanticsVariant DefaultFun
forall x.
BuiltinSemanticsVariant DefaultFun
-> Rep (BuiltinSemanticsVariant DefaultFun) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
BuiltinSemanticsVariant DefaultFun
-> Rep (BuiltinSemanticsVariant DefaultFun) x
from :: forall x.
BuiltinSemanticsVariant DefaultFun
-> Rep (BuiltinSemanticsVariant DefaultFun) x
$cto :: forall x.
Rep (BuiltinSemanticsVariant DefaultFun) x
-> BuiltinSemanticsVariant DefaultFun
to :: forall x.
Rep (BuiltinSemanticsVariant DefaultFun) x
-> BuiltinSemanticsVariant DefaultFun
Generic)
deriving anyclass (BuiltinSemanticsVariant DefaultFun -> ()
(BuiltinSemanticsVariant DefaultFun -> ())
-> NFData (BuiltinSemanticsVariant DefaultFun)
forall a. (a -> ()) -> NFData a
$crnf :: BuiltinSemanticsVariant DefaultFun -> ()
rnf :: BuiltinSemanticsVariant DefaultFun -> ()
NFData, Context
-> BuiltinSemanticsVariant DefaultFun -> IO (Maybe ThunkInfo)
Proxy (BuiltinSemanticsVariant DefaultFun) -> String
(Context
-> BuiltinSemanticsVariant DefaultFun -> IO (Maybe ThunkInfo))
-> (Context
-> BuiltinSemanticsVariant DefaultFun -> IO (Maybe ThunkInfo))
-> (Proxy (BuiltinSemanticsVariant DefaultFun) -> String)
-> NoThunks (BuiltinSemanticsVariant DefaultFun)
forall a.
(Context -> a -> IO (Maybe ThunkInfo))
-> (Context -> a -> IO (Maybe ThunkInfo))
-> (Proxy a -> String)
-> NoThunks a
$cnoThunks :: Context
-> BuiltinSemanticsVariant DefaultFun -> IO (Maybe ThunkInfo)
noThunks :: Context
-> BuiltinSemanticsVariant DefaultFun -> IO (Maybe ThunkInfo)
$cwNoThunks :: Context
-> BuiltinSemanticsVariant DefaultFun -> IO (Maybe ThunkInfo)
wNoThunks :: Context
-> BuiltinSemanticsVariant DefaultFun -> IO (Maybe ThunkInfo)
$cshowTypeOf :: Proxy (BuiltinSemanticsVariant DefaultFun) -> String
showTypeOf :: Proxy (BuiltinSemanticsVariant DefaultFun) -> String
NoThunks)
toBuiltinMeaning
:: forall val
. HasMeaningIn uni val
=> BuiltinSemanticsVariant DefaultFun
-> DefaultFun
-> BuiltinMeaning val BuiltinCostModel
toBuiltinMeaning :: forall val.
HasMeaningIn uni val =>
BuiltinSemanticsVariant DefaultFun
-> DefaultFun -> BuiltinMeaning val BuiltinCostModel
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
AddInteger
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let addIntegerD :: CInteger -> CInteger -> Integer
addIntegerD :: CInteger -> CInteger -> Integer
addIntegerD (CInteger Integer
x) (CInteger Integer
y) = Integer
x Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
+ Integer
y
{-# INLINE addIntegerD #-}
in (CInteger -> CInteger -> Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CInteger -> CInteger -> Integer)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CInteger -> CInteger -> Integer)
-> (cost
-> FoldArgs
(GetArgs (CInteger -> CInteger -> Integer)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CInteger -> CInteger -> Integer
addIntegerD
(CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CInteger
-> CInteger
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramAddInteger)
| Bool
otherwise =
let addIntegerD :: Integer -> Integer -> Integer
addIntegerD :: Integer -> Integer -> Integer
addIntegerD = Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
(+)
{-# INLINE addIntegerD #-}
in (Integer -> Integer -> Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> Integer -> Integer)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Integer -> Integer)
-> (cost
-> FoldArgs
(GetArgs (Integer -> Integer -> Integer)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Integer -> Integer
addIntegerD
(CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> Integer
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramAddInteger)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
SubtractInteger
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let subtractIntegerD :: CInteger -> CInteger -> Integer
subtractIntegerD :: CInteger -> CInteger -> Integer
subtractIntegerD (CInteger Integer
x) (CInteger Integer
y) = Integer
x Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
- Integer
y
{-# INLINE subtractIntegerD #-}
in (CInteger -> CInteger -> Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CInteger -> CInteger -> Integer)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CInteger -> CInteger -> Integer)
-> (cost
-> FoldArgs
(GetArgs (CInteger -> CInteger -> Integer)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CInteger -> CInteger -> Integer
subtractIntegerD
(CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CInteger
-> CInteger
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramSubtractInteger)
| Bool
otherwise =
let subtractIntegerD :: Integer -> Integer -> Integer
subtractIntegerD :: Integer -> Integer -> Integer
subtractIntegerD = (-)
{-# INLINE subtractIntegerD #-}
in (Integer -> Integer -> Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> Integer -> Integer)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Integer -> Integer)
-> (cost
-> FoldArgs
(GetArgs (Integer -> Integer -> Integer)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Integer -> Integer
subtractIntegerD
(CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> Integer
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramSubtractInteger)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
MultiplyInteger
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let multiplyIntegerD :: CInteger -> CInteger -> Integer
multiplyIntegerD :: CInteger -> CInteger -> Integer
multiplyIntegerD (CInteger Integer
x) (CInteger Integer
y) = Integer
x Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
* Integer
y
{-# INLINE multiplyIntegerD #-}
in (CInteger -> CInteger -> Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CInteger -> CInteger -> Integer)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CInteger -> CInteger -> Integer)
-> (cost
-> FoldArgs
(GetArgs (CInteger -> CInteger -> Integer)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CInteger -> CInteger -> Integer
multiplyIntegerD
(CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CInteger
-> CInteger
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramMultiplyInteger)
| Bool
otherwise =
let multiplyIntegerD :: Integer -> Integer -> Integer
multiplyIntegerD :: Integer -> Integer -> Integer
multiplyIntegerD = Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
(*)
{-# INLINE multiplyIntegerD #-}
in (Integer -> Integer -> Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> Integer -> Integer)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Integer -> Integer)
-> (cost
-> FoldArgs
(GetArgs (Integer -> Integer -> Integer)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Integer -> Integer
multiplyIntegerD
(CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> Integer
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramMultiplyInteger)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
DivideInteger
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let divideIntegerD :: CInteger -> CInteger -> BuiltinResult Integer
divideIntegerD :: CInteger -> CInteger -> BuiltinResult Integer
divideIntegerD (CInteger Integer
x) (CInteger Integer
y) = (Integer -> Integer -> Integer)
-> Integer -> Integer -> BuiltinResult Integer
nonZeroSecondArg Integer -> Integer -> Integer
forall a. Integral a => a -> a -> a
div Integer
x Integer
y
{-# INLINE divideIntegerD #-}
in (CInteger -> CInteger -> BuiltinResult Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CInteger -> CInteger -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CInteger -> CInteger -> BuiltinResult Integer)
-> (cost
-> FoldArgs
(GetArgs (CInteger -> CInteger -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CInteger -> CInteger -> BuiltinResult Integer
divideIntegerD
(CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CInteger
-> CInteger
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramDivideInteger)
| Bool
otherwise =
let divideIntegerD :: Integer -> Integer -> BuiltinResult Integer
divideIntegerD :: Integer -> Integer -> BuiltinResult Integer
divideIntegerD = (Integer -> Integer -> Integer)
-> Integer -> Integer -> BuiltinResult Integer
nonZeroSecondArg Integer -> Integer -> Integer
forall a. Integral a => a -> a -> a
div
{-# INLINE divideIntegerD #-}
in (Integer -> Integer -> BuiltinResult Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> Integer -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Integer -> BuiltinResult Integer)
-> (cost
-> FoldArgs
(GetArgs (Integer -> Integer -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Integer -> BuiltinResult Integer
divideIntegerD
(CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> Integer
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramDivideInteger)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
QuotientInteger
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let quotientIntegerD :: CInteger -> CInteger -> BuiltinResult Integer
quotientIntegerD :: CInteger -> CInteger -> BuiltinResult Integer
quotientIntegerD (CInteger Integer
x) (CInteger Integer
y) = (Integer -> Integer -> Integer)
-> Integer -> Integer -> BuiltinResult Integer
nonZeroSecondArg Integer -> Integer -> Integer
forall a. Integral a => a -> a -> a
quot Integer
x Integer
y
{-# INLINE quotientIntegerD #-}
in (CInteger -> CInteger -> BuiltinResult Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CInteger -> CInteger -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CInteger -> CInteger -> BuiltinResult Integer)
-> (cost
-> FoldArgs
(GetArgs (CInteger -> CInteger -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CInteger -> CInteger -> BuiltinResult Integer
quotientIntegerD
(CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CInteger
-> CInteger
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramQuotientInteger)
| Bool
otherwise =
let quotientIntegerD :: Integer -> Integer -> BuiltinResult Integer
quotientIntegerD :: Integer -> Integer -> BuiltinResult Integer
quotientIntegerD = (Integer -> Integer -> Integer)
-> Integer -> Integer -> BuiltinResult Integer
nonZeroSecondArg Integer -> Integer -> Integer
forall a. Integral a => a -> a -> a
quot
{-# INLINE quotientIntegerD #-}
in (Integer -> Integer -> BuiltinResult Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> Integer -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Integer -> BuiltinResult Integer)
-> (cost
-> FoldArgs
(GetArgs (Integer -> Integer -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Integer -> BuiltinResult Integer
quotientIntegerD
(CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> Integer
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramQuotientInteger)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
RemainderInteger
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let remainderIntegerD :: CInteger -> CInteger -> BuiltinResult Integer
remainderIntegerD :: CInteger -> CInteger -> BuiltinResult Integer
remainderIntegerD (CInteger Integer
x) (CInteger Integer
y) = (Integer -> Integer -> Integer)
-> Integer -> Integer -> BuiltinResult Integer
nonZeroSecondArg Integer -> Integer -> Integer
forall a. Integral a => a -> a -> a
rem Integer
x Integer
y
{-# INLINE remainderIntegerD #-}
in (CInteger -> CInteger -> BuiltinResult Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CInteger -> CInteger -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CInteger -> CInteger -> BuiltinResult Integer)
-> (cost
-> FoldArgs
(GetArgs (CInteger -> CInteger -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CInteger -> CInteger -> BuiltinResult Integer
remainderIntegerD
(CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CInteger
-> CInteger
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramRemainderInteger)
| Bool
otherwise =
let remainderIntegerD :: Integer -> Integer -> BuiltinResult Integer
remainderIntegerD :: Integer -> Integer -> BuiltinResult Integer
remainderIntegerD = (Integer -> Integer -> Integer)
-> Integer -> Integer -> BuiltinResult Integer
nonZeroSecondArg Integer -> Integer -> Integer
forall a. Integral a => a -> a -> a
rem
{-# INLINE remainderIntegerD #-}
in (Integer -> Integer -> BuiltinResult Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> Integer -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Integer -> BuiltinResult Integer)
-> (cost
-> FoldArgs
(GetArgs (Integer -> Integer -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Integer -> BuiltinResult Integer
remainderIntegerD
(CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> Integer
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramRemainderInteger)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
ModInteger
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let modIntegerD :: CInteger -> CInteger -> BuiltinResult Integer
modIntegerD :: CInteger -> CInteger -> BuiltinResult Integer
modIntegerD (CInteger Integer
x) (CInteger Integer
y) = (Integer -> Integer -> Integer)
-> Integer -> Integer -> BuiltinResult Integer
nonZeroSecondArg Integer -> Integer -> Integer
forall a. Integral a => a -> a -> a
mod Integer
x Integer
y
{-# INLINE modIntegerD #-}
in (CInteger -> CInteger -> BuiltinResult Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CInteger -> CInteger -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CInteger -> CInteger -> BuiltinResult Integer)
-> (cost
-> FoldArgs
(GetArgs (CInteger -> CInteger -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CInteger -> CInteger -> BuiltinResult Integer
modIntegerD
(CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CInteger
-> CInteger
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramModInteger)
| Bool
otherwise =
let modIntegerD :: Integer -> Integer -> BuiltinResult Integer
modIntegerD :: Integer -> Integer -> BuiltinResult Integer
modIntegerD = (Integer -> Integer -> Integer)
-> Integer -> Integer -> BuiltinResult Integer
nonZeroSecondArg Integer -> Integer -> Integer
forall a. Integral a => a -> a -> a
mod
{-# INLINE modIntegerD #-}
in (Integer -> Integer -> BuiltinResult Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> Integer -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Integer -> BuiltinResult Integer)
-> (cost
-> FoldArgs
(GetArgs (Integer -> Integer -> BuiltinResult Integer))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Integer -> BuiltinResult Integer
modIntegerD
(CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> Integer
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramModInteger)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
EqualsInteger =
let equalsIntegerD :: Integer -> Integer -> Bool
equalsIntegerD :: Integer -> Integer -> Bool
equalsIntegerD = Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
(==)
{-# INLINE equalsIntegerD #-}
in (Integer -> Integer -> Bool)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Integer -> Integer -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Integer -> Bool)
-> (cost
-> FoldArgs (GetArgs (Integer -> Integer -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Integer -> Bool
equalsIntegerD
(CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> Integer
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramEqualsInteger)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
LessThanInteger
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let lessThanIntegerD :: CInteger -> CInteger -> Bool
lessThanIntegerD :: CInteger -> CInteger -> Bool
lessThanIntegerD (CInteger Integer
x) (CInteger Integer
y) = Integer
x Integer -> Integer -> Bool
forall a. Ord a => a -> a -> Bool
< Integer
y
{-# INLINE lessThanIntegerD #-}
in (CInteger -> CInteger -> Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CInteger -> CInteger -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CInteger -> CInteger -> Bool)
-> (cost
-> FoldArgs
(GetArgs (CInteger -> CInteger -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CInteger -> CInteger -> Bool
lessThanIntegerD
(CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CInteger
-> CInteger
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramLessThanInteger)
| Bool
otherwise =
let lessThanIntegerD :: Integer -> Integer -> Bool
lessThanIntegerD :: Integer -> Integer -> Bool
lessThanIntegerD = Integer -> Integer -> Bool
forall a. Ord a => a -> a -> Bool
(<)
{-# INLINE lessThanIntegerD #-}
in (Integer -> Integer -> Bool)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Integer -> Integer -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Integer -> Bool)
-> (cost
-> FoldArgs (GetArgs (Integer -> Integer -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Integer -> Bool
lessThanIntegerD
(CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> Integer
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramLessThanInteger)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
LessThanEqualsInteger
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let lessThanEqualsIntegerD :: CInteger -> CInteger -> Bool
lessThanEqualsIntegerD :: CInteger -> CInteger -> Bool
lessThanEqualsIntegerD (CInteger Integer
x) (CInteger Integer
y) = Integer
x Integer -> Integer -> Bool
forall a. Ord a => a -> a -> Bool
<= Integer
y
{-# INLINE lessThanEqualsIntegerD #-}
in (CInteger -> CInteger -> Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CInteger -> CInteger -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CInteger -> CInteger -> Bool)
-> (cost
-> FoldArgs
(GetArgs (CInteger -> CInteger -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CInteger -> CInteger -> Bool
lessThanEqualsIntegerD
(CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CInteger -> CInteger -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CInteger
-> CInteger
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramLessThanEqualsInteger)
| Bool
otherwise =
let lessThanEqualsIntegerD :: Integer -> Integer -> Bool
lessThanEqualsIntegerD :: Integer -> Integer -> Bool
lessThanEqualsIntegerD = Integer -> Integer -> Bool
forall a. Ord a => a -> a -> Bool
(<=)
{-# INLINE lessThanEqualsIntegerD #-}
in (Integer -> Integer -> Bool)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Integer -> Integer -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Integer -> Bool)
-> (cost
-> FoldArgs (GetArgs (Integer -> Integer -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Integer -> Bool
lessThanEqualsIntegerD
(CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> Integer -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> Integer
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramLessThanEqualsInteger)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
AppendByteString
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let appendByteStringD :: CByteString -> CByteString -> BS.ByteString
appendByteStringD :: CByteString -> CByteString -> ByteString
appendByteStringD (CByteString ByteString
x) (CByteString ByteString
y) = ByteString -> ByteString -> ByteString
BS.append ByteString
x ByteString
y
{-# INLINE appendByteStringD #-}
in (CByteString -> CByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CByteString -> CByteString -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> CByteString -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (CByteString -> CByteString -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> CByteString -> ByteString
appendByteStringD
(CostingFun ModelTwoArguments
-> CByteString -> CByteString -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CByteString -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CByteString
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramAppendByteString)
| Bool
otherwise =
let appendByteStringD :: BS.ByteString -> BS.ByteString -> BS.ByteString
appendByteStringD :: ByteString -> ByteString -> ByteString
appendByteStringD = ByteString -> ByteString -> ByteString
BS.append
{-# INLINE appendByteStringD #-}
in (ByteString -> ByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString -> ByteString
appendByteStringD
(CostingFun ModelTwoArguments
-> ByteString -> ByteString -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramAppendByteString)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
ConsByteString =
let costingFun
:: (ExMemoryUsage a, ExMemoryUsage b) => BuiltinCostModel -> a -> b -> ExBudgetStream
costingFun :: forall a b.
(ExMemoryUsage a, ExMemoryUsage b) =>
BuiltinCostModel -> a -> b -> ExBudgetStream
costingFun = CostingFun ModelTwoArguments -> a -> b -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments -> a -> b -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> a
-> b
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramConsByteString
{-# INLINE costingFun #-}
consByteStringMeaning_V1 :: BuiltinMeaning val BuiltinCostModel
consByteStringMeaning_V1
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let consByteStringD :: CInteger -> CByteString -> BS.ByteString
consByteStringD :: CInteger -> CByteString -> ByteString
consByteStringD (CInteger Integer
x) (CByteString ByteString
xs) = Word8 -> ByteString -> ByteString
BS.cons (Integer -> Word8
forall a b. (Integral a, Num b) => a -> b
fromIntegral Integer
x) ByteString
xs
{-# INLINE consByteStringD #-}
in (CInteger -> CByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CInteger -> CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CInteger -> CByteString -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (CInteger -> CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CInteger -> CByteString -> ByteString
consByteStringD
BuiltinCostModel
-> FoldArgs
(GetArgs (CInteger -> CByteString -> ByteString)) ExBudgetStream
BuiltinCostModel -> CInteger -> CByteString -> ExBudgetStream
forall a b.
(ExMemoryUsage a, ExMemoryUsage b) =>
BuiltinCostModel -> a -> b -> ExBudgetStream
costingFun
| Bool
otherwise =
let consByteStringD :: Integer -> BS.ByteString -> BS.ByteString
consByteStringD :: Integer -> ByteString -> ByteString
consByteStringD = Word8 -> ByteString -> ByteString
BS.cons (Word8 -> ByteString -> ByteString)
-> (Integer -> Word8) -> Integer -> ByteString -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Integer -> Word8
forall a b. (Integral a, Num b) => a -> b
fromIntegral
{-# INLINE consByteStringD #-}
in (Integer -> ByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> ByteString -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (Integer -> ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> ByteString -> ByteString
consByteStringD
BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> ByteString -> ByteString)) ExBudgetStream
BuiltinCostModel -> Integer -> ByteString -> ExBudgetStream
forall a b.
(ExMemoryUsage a, ExMemoryUsage b) =>
BuiltinCostModel -> a -> b -> ExBudgetStream
costingFun
consByteStringMeaning_V2 :: BuiltinMeaning val BuiltinCostModel
consByteStringMeaning_V2
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let consByteStringD :: Word8 -> CByteString -> BS.ByteString
consByteStringD :: Word8 -> CByteString -> ByteString
consByteStringD Word8
x (CByteString ByteString
xs) = Word8 -> ByteString -> ByteString
BS.cons Word8
x ByteString
xs
{-# INLINE consByteStringD #-}
in (Word8 -> CByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Word8 -> CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Word8 -> CByteString -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (Word8 -> CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Word8 -> CByteString -> ByteString
consByteStringD
BuiltinCostModel
-> FoldArgs
(GetArgs (Word8 -> CByteString -> ByteString)) ExBudgetStream
BuiltinCostModel -> Word8 -> CByteString -> ExBudgetStream
forall a b.
(ExMemoryUsage a, ExMemoryUsage b) =>
BuiltinCostModel -> a -> b -> ExBudgetStream
costingFun
| Bool
otherwise =
let consByteStringD :: Word8 -> BS.ByteString -> BS.ByteString
consByteStringD :: Word8 -> ByteString -> ByteString
consByteStringD = Word8 -> ByteString -> ByteString
BS.cons
{-# INLINE consByteStringD #-}
in (Word8 -> ByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Word8 -> ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Word8 -> ByteString -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (Word8 -> ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Word8 -> ByteString -> ByteString
consByteStringD
BuiltinCostModel
-> FoldArgs
(GetArgs (Word8 -> ByteString -> ByteString)) ExBudgetStream
BuiltinCostModel -> Word8 -> ByteString -> ExBudgetStream
forall a b.
(ExMemoryUsage a, ExMemoryUsage b) =>
BuiltinCostModel -> a -> b -> ExBudgetStream
costingFun
in case BuiltinSemanticsVariant DefaultFun
semvar of
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantA -> BuiltinMeaning val BuiltinCostModel
consByteStringMeaning_V1
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantB -> BuiltinMeaning val BuiltinCostModel
consByteStringMeaning_V1
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantC -> BuiltinMeaning val BuiltinCostModel
consByteStringMeaning_V2
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantD -> BuiltinMeaning val BuiltinCostModel
consByteStringMeaning_V1
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantE -> BuiltinMeaning val BuiltinCostModel
consByteStringMeaning_V2
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
SliceByteString
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let sliceByteStringD :: Int -> Int -> CByteString -> BS.ByteString
sliceByteStringD :: Int -> Int -> CByteString -> ByteString
sliceByteStringD Int
start Int
n (CByteString ByteString
xs) = Int -> ByteString -> ByteString
BS.take Int
n (Int -> ByteString -> ByteString
BS.drop Int
start ByteString
xs)
{-# INLINE sliceByteStringD #-}
in (Int -> Int -> CByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Int -> Int -> CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Int -> Int -> CByteString -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (Int -> Int -> CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Int -> Int -> CByteString -> ByteString
sliceByteStringD
(CostingFun ModelThreeArguments
-> Int -> Int -> CByteString -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> Int -> Int -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> Int
-> Int
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramSliceByteString)
| Bool
otherwise =
let sliceByteStringD :: Int -> Int -> BS.ByteString -> BS.ByteString
sliceByteStringD :: Int -> Int -> ByteString -> ByteString
sliceByteStringD Int
start Int
n ByteString
xs = Int -> ByteString -> ByteString
BS.take Int
n (Int -> ByteString -> ByteString
BS.drop Int
start ByteString
xs)
{-# INLINE sliceByteStringD #-}
in (Int -> Int -> ByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Int -> Int -> ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Int -> Int -> ByteString -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (Int -> Int -> ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Int -> Int -> ByteString -> ByteString
sliceByteStringD
(CostingFun ModelThreeArguments
-> Int -> Int -> ByteString -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> Int -> Int -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> Int
-> Int
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramSliceByteString)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
LengthOfByteString =
let lengthOfByteStringD :: BS.ByteString -> BuiltinResult Int
lengthOfByteStringD :: ByteString -> BuiltinResult Int
lengthOfByteStringD = Int -> BuiltinResult Int
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Int -> BuiltinResult Int)
-> (ByteString -> Int) -> ByteString -> BuiltinResult Int
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Int
BS.length
{-# INLINE lengthOfByteStringD #-}
in (ByteString -> BuiltinResult Int)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> BuiltinResult Int)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> BuiltinResult Int)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> BuiltinResult Int)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> BuiltinResult Int
lengthOfByteStringD
(CostingFun ModelOneArgument -> ByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramLengthOfByteString)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
IndexByteString
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let indexByteStringD :: CByteString -> Int -> BuiltinResult Word8
indexByteStringD :: CByteString -> Int -> BuiltinResult Word8
indexByteStringD (CByteString ByteString
xs) Int
n =
BuiltinResult Word8
-> (Word8 -> BuiltinResult Word8)
-> Maybe Word8
-> BuiltinResult Word8
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (String -> BuiltinResult Word8
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Index out of bounds") Word8 -> BuiltinResult Word8
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Maybe Word8 -> BuiltinResult Word8)
-> Maybe Word8 -> BuiltinResult Word8
forall a b. (a -> b) -> a -> b
$ ByteString -> Int -> Maybe Word8
BS.indexMaybe ByteString
xs Int
n
{-# INLINE indexByteStringD #-}
in (CByteString -> Int -> BuiltinResult Word8)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CByteString -> Int -> BuiltinResult Word8))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> Int -> BuiltinResult Word8)
-> (cost
-> FoldArgs
(GetArgs (CByteString -> Int -> BuiltinResult Word8))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> Int -> BuiltinResult Word8
indexByteStringD
(CostingFun ModelTwoArguments
-> CByteString -> Int -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CByteString -> Int -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CByteString
-> Int
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramIndexByteString)
| Bool
otherwise =
let indexByteStringD :: BS.ByteString -> Int -> BuiltinResult Word8
indexByteStringD :: ByteString -> Int -> BuiltinResult Word8
indexByteStringD ByteString
xs Int
n =
BuiltinResult Word8
-> (Word8 -> BuiltinResult Word8)
-> Maybe Word8
-> BuiltinResult Word8
forall b a. b -> (a -> b) -> Maybe a -> b
maybe (String -> BuiltinResult Word8
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Index out of bounds") Word8 -> BuiltinResult Word8
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Maybe Word8 -> BuiltinResult Word8)
-> Maybe Word8 -> BuiltinResult Word8
forall a b. (a -> b) -> a -> b
$ ByteString -> Int -> Maybe Word8
BS.indexMaybe ByteString
xs Int
n
{-# INLINE indexByteStringD #-}
in (ByteString -> Int -> BuiltinResult Word8)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> Int -> BuiltinResult Word8))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> Int -> BuiltinResult Word8)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> Int -> BuiltinResult Word8))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> Int -> BuiltinResult Word8
indexByteStringD
(CostingFun ModelTwoArguments -> ByteString -> Int -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ByteString -> Int -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ByteString
-> Int
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramIndexByteString)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
EqualsByteString
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let equalsByteStringD :: CByteString -> CByteString -> Bool
equalsByteStringD :: CByteString -> CByteString -> Bool
equalsByteStringD (CByteString ByteString
x) (CByteString ByteString
y) = ByteString
x ByteString -> ByteString -> Bool
forall a. Eq a => a -> a -> Bool
== ByteString
y
{-# INLINE equalsByteStringD #-}
in (CByteString -> CByteString -> Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CByteString -> CByteString -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> CByteString -> Bool)
-> (cost
-> FoldArgs
(GetArgs (CByteString -> CByteString -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> CByteString -> Bool
equalsByteStringD
(CostingFun ModelTwoArguments
-> CByteString -> CByteString -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CByteString -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CByteString
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramEqualsByteString)
| Bool
otherwise =
let equalsByteStringD :: BS.ByteString -> BS.ByteString -> Bool
equalsByteStringD :: ByteString -> ByteString -> Bool
equalsByteStringD = ByteString -> ByteString -> Bool
forall a. Eq a => a -> a -> Bool
(==)
{-# INLINE equalsByteStringD #-}
in (ByteString -> ByteString -> Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> ByteString -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString -> Bool)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> ByteString -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString -> Bool
equalsByteStringD
(CostingFun ModelTwoArguments
-> ByteString -> ByteString -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramEqualsByteString)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
LessThanByteString
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let lessThanByteStringD :: CByteString -> CByteString -> Bool
lessThanByteStringD :: CByteString -> CByteString -> Bool
lessThanByteStringD (CByteString ByteString
x) (CByteString ByteString
y) = ByteString
x ByteString -> ByteString -> Bool
forall a. Ord a => a -> a -> Bool
< ByteString
y
{-# INLINE lessThanByteStringD #-}
in (CByteString -> CByteString -> Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CByteString -> CByteString -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> CByteString -> Bool)
-> (cost
-> FoldArgs
(GetArgs (CByteString -> CByteString -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> CByteString -> Bool
lessThanByteStringD
(CostingFun ModelTwoArguments
-> CByteString -> CByteString -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CByteString -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CByteString
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramLessThanByteString)
| Bool
otherwise =
let lessThanByteStringD :: BS.ByteString -> BS.ByteString -> Bool
lessThanByteStringD :: ByteString -> ByteString -> Bool
lessThanByteStringD = ByteString -> ByteString -> Bool
forall a. Ord a => a -> a -> Bool
(<)
{-# INLINE lessThanByteStringD #-}
in (ByteString -> ByteString -> Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> ByteString -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString -> Bool)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> ByteString -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString -> Bool
lessThanByteStringD
(CostingFun ModelTwoArguments
-> ByteString -> ByteString -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramLessThanByteString)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
LessThanEqualsByteString
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let lessThanEqualsByteStringD :: CByteString -> CByteString -> Bool
lessThanEqualsByteStringD :: CByteString -> CByteString -> Bool
lessThanEqualsByteStringD (CByteString ByteString
x) (CByteString ByteString
y) = ByteString
x ByteString -> ByteString -> Bool
forall a. Ord a => a -> a -> Bool
<= ByteString
y
{-# INLINE lessThanEqualsByteStringD #-}
in (CByteString -> CByteString -> Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CByteString -> CByteString -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> CByteString -> Bool)
-> (cost
-> FoldArgs
(GetArgs (CByteString -> CByteString -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> CByteString -> Bool
lessThanEqualsByteStringD
(CostingFun ModelTwoArguments
-> CByteString -> CByteString -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CByteString -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CByteString
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramLessThanEqualsByteString)
| Bool
otherwise =
let lessThanEqualsByteStringD :: BS.ByteString -> BS.ByteString -> Bool
lessThanEqualsByteStringD :: ByteString -> ByteString -> Bool
lessThanEqualsByteStringD = ByteString -> ByteString -> Bool
forall a. Ord a => a -> a -> Bool
(<=)
{-# INLINE lessThanEqualsByteStringD #-}
in (ByteString -> ByteString -> Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> ByteString -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString -> Bool)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> ByteString -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString -> Bool
lessThanEqualsByteStringD
(CostingFun ModelTwoArguments
-> ByteString -> ByteString -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramLessThanEqualsByteString)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
Sha2_256
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let sha2_256D :: CByteString -> BS.ByteString
sha2_256D :: CByteString -> ByteString
sha2_256D (CByteString ByteString
x) = ByteString -> ByteString
Hash.sha2_256 ByteString
x
{-# INLINE sha2_256D #-}
in (CByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> ByteString)
-> (cost
-> FoldArgs (GetArgs (CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> ByteString
sha2_256D
(CostingFun ModelOneArgument -> CByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramSha2_256)
| Bool
otherwise =
let sha2_256D :: BS.ByteString -> BS.ByteString
sha2_256D :: ByteString -> ByteString
sha2_256D = ByteString -> ByteString
Hash.sha2_256
{-# INLINE sha2_256D #-}
in (ByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString)
-> (cost
-> FoldArgs (GetArgs (ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString
sha2_256D
(CostingFun ModelOneArgument -> ByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramSha2_256)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
Sha3_256
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let sha3_256D :: CByteString -> BS.ByteString
sha3_256D :: CByteString -> ByteString
sha3_256D (CByteString ByteString
x) = ByteString -> ByteString
Hash.sha3_256 ByteString
x
{-# INLINE sha3_256D #-}
in (CByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> ByteString)
-> (cost
-> FoldArgs (GetArgs (CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> ByteString
sha3_256D
(CostingFun ModelOneArgument -> CByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramSha3_256)
| Bool
otherwise =
let sha3_256D :: BS.ByteString -> BS.ByteString
sha3_256D :: ByteString -> ByteString
sha3_256D = ByteString -> ByteString
Hash.sha3_256
{-# INLINE sha3_256D #-}
in (ByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString)
-> (cost
-> FoldArgs (GetArgs (ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString
sha3_256D
(CostingFun ModelOneArgument -> ByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramSha3_256)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
Blake2b_256
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let blake2b_256D :: CByteString -> BS.ByteString
blake2b_256D :: CByteString -> ByteString
blake2b_256D (CByteString ByteString
x) = ByteString -> ByteString
Hash.blake2b_256 ByteString
x
{-# INLINE blake2b_256D #-}
in (CByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> ByteString)
-> (cost
-> FoldArgs (GetArgs (CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> ByteString
blake2b_256D
(CostingFun ModelOneArgument -> CByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramBlake2b_256)
| Bool
otherwise =
let blake2b_256D :: BS.ByteString -> BS.ByteString
blake2b_256D :: ByteString -> ByteString
blake2b_256D = ByteString -> ByteString
Hash.blake2b_256
{-# INLINE blake2b_256D #-}
in (ByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString)
-> (cost
-> FoldArgs (GetArgs (ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString
blake2b_256D
(CostingFun ModelOneArgument -> ByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramBlake2b_256)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
VerifyEd25519Signature
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let verifyEd25519SignatureD
:: BS.ByteString -> CByteString -> BS.ByteString -> BuiltinResult Bool
verifyEd25519SignatureD :: ByteString -> CByteString -> ByteString -> BuiltinResult Bool
verifyEd25519SignatureD ByteString
pk (CByteString ByteString
msg) =
ByteString -> ByteString -> ByteString -> BuiltinResult Bool
verifyEd25519Signature ByteString
pk ByteString
msg
{-# INLINE verifyEd25519SignatureD #-}
in (ByteString -> CByteString -> ByteString -> BuiltinResult Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(ByteString -> CByteString -> ByteString -> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> CByteString -> ByteString -> BuiltinResult Bool)
-> (cost
-> FoldArgs
(GetArgs
(ByteString -> CByteString -> ByteString -> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> CByteString -> ByteString -> BuiltinResult Bool
verifyEd25519SignatureD
(CostingFun ModelThreeArguments
-> ByteString -> CByteString -> ByteString -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> ByteString -> CByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> ByteString
-> CByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramVerifyEd25519Signature)
| Bool
otherwise =
let verifyEd25519SignatureD
:: BS.ByteString -> BS.ByteString -> BS.ByteString -> BuiltinResult Bool
verifyEd25519SignatureD :: ByteString -> ByteString -> ByteString -> BuiltinResult Bool
verifyEd25519SignatureD = ByteString -> ByteString -> ByteString -> BuiltinResult Bool
verifyEd25519Signature
{-# INLINE verifyEd25519SignatureD #-}
in (ByteString -> ByteString -> ByteString -> BuiltinResult Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(ByteString -> ByteString -> ByteString -> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString -> ByteString -> BuiltinResult Bool)
-> (cost
-> FoldArgs
(GetArgs
(ByteString -> ByteString -> ByteString -> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString -> ByteString -> BuiltinResult Bool
verifyEd25519SignatureD
(CostingFun ModelThreeArguments
-> ByteString -> ByteString -> ByteString -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> ByteString -> ByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> ByteString
-> ByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramVerifyEd25519Signature)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
VerifyEcdsaSecp256k1Signature =
let verifyEcdsaSecp256k1SignatureD
:: BS.ByteString -> BS.ByteString -> BS.ByteString -> BuiltinResult Bool
verifyEcdsaSecp256k1SignatureD :: ByteString -> ByteString -> ByteString -> BuiltinResult Bool
verifyEcdsaSecp256k1SignatureD = ByteString -> ByteString -> ByteString -> BuiltinResult Bool
verifyEcdsaSecp256k1Signature
{-# INLINE verifyEcdsaSecp256k1SignatureD #-}
in (ByteString -> ByteString -> ByteString -> BuiltinResult Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(ByteString -> ByteString -> ByteString -> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString -> ByteString -> BuiltinResult Bool)
-> (cost
-> FoldArgs
(GetArgs
(ByteString -> ByteString -> ByteString -> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString -> ByteString -> BuiltinResult Bool
verifyEcdsaSecp256k1SignatureD
(CostingFun ModelThreeArguments
-> ByteString -> ByteString -> ByteString -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> ByteString -> ByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> ByteString
-> ByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramVerifyEcdsaSecp256k1Signature)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
VerifySchnorrSecp256k1Signature
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let verifySchnorrSecp256k1SignatureD
:: BS.ByteString -> CByteString -> BS.ByteString -> BuiltinResult Bool
verifySchnorrSecp256k1SignatureD :: ByteString -> CByteString -> ByteString -> BuiltinResult Bool
verifySchnorrSecp256k1SignatureD ByteString
pk (CByteString ByteString
msg) =
ByteString -> ByteString -> ByteString -> BuiltinResult Bool
verifySchnorrSecp256k1Signature ByteString
pk ByteString
msg
{-# INLINE verifySchnorrSecp256k1SignatureD #-}
in (ByteString -> CByteString -> ByteString -> BuiltinResult Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(ByteString -> CByteString -> ByteString -> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> CByteString -> ByteString -> BuiltinResult Bool)
-> (cost
-> FoldArgs
(GetArgs
(ByteString -> CByteString -> ByteString -> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> CByteString -> ByteString -> BuiltinResult Bool
verifySchnorrSecp256k1SignatureD
(CostingFun ModelThreeArguments
-> ByteString -> CByteString -> ByteString -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> ByteString -> CByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> ByteString
-> CByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramVerifySchnorrSecp256k1Signature)
| Bool
otherwise =
let verifySchnorrSecp256k1SignatureD
:: BS.ByteString -> BS.ByteString -> BS.ByteString -> BuiltinResult Bool
verifySchnorrSecp256k1SignatureD :: ByteString -> ByteString -> ByteString -> BuiltinResult Bool
verifySchnorrSecp256k1SignatureD = ByteString -> ByteString -> ByteString -> BuiltinResult Bool
verifySchnorrSecp256k1Signature
{-# INLINE verifySchnorrSecp256k1SignatureD #-}
in (ByteString -> ByteString -> ByteString -> BuiltinResult Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(ByteString -> ByteString -> ByteString -> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString -> ByteString -> BuiltinResult Bool)
-> (cost
-> FoldArgs
(GetArgs
(ByteString -> ByteString -> ByteString -> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString -> ByteString -> BuiltinResult Bool
verifySchnorrSecp256k1SignatureD
(CostingFun ModelThreeArguments
-> ByteString -> ByteString -> ByteString -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> ByteString -> ByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> ByteString
-> ByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramVerifySchnorrSecp256k1Signature)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
AppendString =
let costingFun
:: ExMemoryUsage a => BuiltinCostModel -> a -> a -> ExBudgetStream
costingFun :: forall a.
ExMemoryUsage a =>
BuiltinCostModel -> a -> a -> ExBudgetStream
costingFun = CostingFun ModelTwoArguments -> a -> a -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments -> a -> a -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> a
-> a
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramAppendString
{-# INLINE costingFun #-}
appendStringMeaning_V1 :: BuiltinMeaning val BuiltinCostModel
appendStringMeaning_V1 =
let appendStringD :: Text -> Text -> Text
appendStringD :: Text -> Text -> Text
appendStringD = Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
(<>)
{-# INLINE appendStringD #-}
in (Text -> Text -> Text)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Text -> Text -> Text)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Text -> Text -> Text)
-> (cost
-> FoldArgs (GetArgs (Text -> Text -> Text)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Text -> Text -> Text
appendStringD
BuiltinCostModel
-> FoldArgs (GetArgs (Text -> Text -> Text)) ExBudgetStream
BuiltinCostModel -> Text -> Text -> ExBudgetStream
forall a.
ExMemoryUsage a =>
BuiltinCostModel -> a -> a -> ExBudgetStream
costingFun
appendStringMeaning_V2 :: BuiltinMeaning val BuiltinCostModel
appendStringMeaning_V2 =
let appendStringD
:: TextCostedByByteLength
-> TextCostedByByteLength
-> Text
appendStringD :: TextCostedByByteLength -> TextCostedByByteLength -> Text
appendStringD (TextCostedByByteLength Text
x) (TextCostedByByteLength Text
y) = Text
x Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
y
{-# INLINE appendStringD #-}
in (TextCostedByByteLength -> TextCostedByByteLength -> Text)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(TextCostedByByteLength -> TextCostedByByteLength -> Text))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(TextCostedByByteLength -> TextCostedByByteLength -> Text)
-> (cost
-> FoldArgs
(GetArgs
(TextCostedByByteLength -> TextCostedByByteLength -> Text))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
TextCostedByByteLength -> TextCostedByByteLength -> Text
appendStringD
BuiltinCostModel
-> FoldArgs
(GetArgs
(TextCostedByByteLength -> TextCostedByByteLength -> Text))
ExBudgetStream
BuiltinCostModel
-> TextCostedByByteLength
-> TextCostedByByteLength
-> ExBudgetStream
forall a.
ExMemoryUsage a =>
BuiltinCostModel -> a -> a -> ExBudgetStream
costingFun
in case BuiltinSemanticsVariant DefaultFun
semvar of
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantA -> BuiltinMeaning val BuiltinCostModel
appendStringMeaning_V1
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantB -> BuiltinMeaning val BuiltinCostModel
appendStringMeaning_V1
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantC -> BuiltinMeaning val BuiltinCostModel
appendStringMeaning_V1
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantD -> BuiltinMeaning val BuiltinCostModel
appendStringMeaning_V2
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantE -> BuiltinMeaning val BuiltinCostModel
appendStringMeaning_V2
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
EqualsString =
let costingFun
:: ExMemoryUsage a => BuiltinCostModel -> a -> a -> ExBudgetStream
costingFun :: forall a.
ExMemoryUsage a =>
BuiltinCostModel -> a -> a -> ExBudgetStream
costingFun = CostingFun ModelTwoArguments -> a -> a -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments -> a -> a -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> a
-> a
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramEqualsString
{-# INLINE costingFun #-}
equalsStringMeaning_V1 :: BuiltinMeaning val BuiltinCostModel
equalsStringMeaning_V1 =
let equalsStringD :: Text -> Text -> Bool
equalsStringD :: Text -> Text -> Bool
equalsStringD = Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
(==)
{-# INLINE equalsStringD #-}
in (Text -> Text -> Bool)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Text -> Text -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Text -> Text -> Bool)
-> (cost
-> FoldArgs (GetArgs (Text -> Text -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Text -> Text -> Bool
equalsStringD
BuiltinCostModel
-> FoldArgs (GetArgs (Text -> Text -> Bool)) ExBudgetStream
BuiltinCostModel -> Text -> Text -> ExBudgetStream
forall a.
ExMemoryUsage a =>
BuiltinCostModel -> a -> a -> ExBudgetStream
costingFun
equalsStringMeaning_V2 :: BuiltinMeaning val BuiltinCostModel
equalsStringMeaning_V2 =
let equalsStringD
:: TextCostedByByteLength -> TextCostedByByteLength -> Bool
equalsStringD :: TextCostedByByteLength -> TextCostedByByteLength -> Bool
equalsStringD (TextCostedByByteLength Text
x) (TextCostedByByteLength Text
y) = Text
x Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
y
{-# INLINE equalsStringD #-}
in (TextCostedByByteLength -> TextCostedByByteLength -> Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(TextCostedByByteLength -> TextCostedByByteLength -> Bool))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(TextCostedByByteLength -> TextCostedByByteLength -> Bool)
-> (cost
-> FoldArgs
(GetArgs
(TextCostedByByteLength -> TextCostedByByteLength -> Bool))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
TextCostedByByteLength -> TextCostedByByteLength -> Bool
equalsStringD
BuiltinCostModel
-> FoldArgs
(GetArgs
(TextCostedByByteLength -> TextCostedByByteLength -> Bool))
ExBudgetStream
BuiltinCostModel
-> TextCostedByByteLength
-> TextCostedByByteLength
-> ExBudgetStream
forall a.
ExMemoryUsage a =>
BuiltinCostModel -> a -> a -> ExBudgetStream
costingFun
in case BuiltinSemanticsVariant DefaultFun
semvar of
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantA -> BuiltinMeaning val BuiltinCostModel
equalsStringMeaning_V1
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantB -> BuiltinMeaning val BuiltinCostModel
equalsStringMeaning_V1
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantC -> BuiltinMeaning val BuiltinCostModel
equalsStringMeaning_V1
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantD -> BuiltinMeaning val BuiltinCostModel
equalsStringMeaning_V2
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantE -> BuiltinMeaning val BuiltinCostModel
equalsStringMeaning_V2
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
EncodeUtf8 =
let costingFun
:: ExMemoryUsage a => BuiltinCostModel -> a -> ExBudgetStream
costingFun :: forall a.
ExMemoryUsage a =>
BuiltinCostModel -> a -> ExBudgetStream
costingFun = CostingFun ModelOneArgument -> a -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> a -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> a
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramEncodeUtf8
{-# INLINE costingFun #-}
encodeUtf8Meaning_V1 :: BuiltinMeaning val BuiltinCostModel
encodeUtf8Meaning_V1 =
let encodeUtf8D :: Text -> BS.ByteString
encodeUtf8D :: Text -> ByteString
encodeUtf8D = Text -> ByteString
encodeUtf8
{-# INLINE encodeUtf8D #-}
in (Text -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Text -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Text -> ByteString)
-> (cost -> FoldArgs (GetArgs (Text -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Text -> ByteString
encodeUtf8D
BuiltinCostModel
-> FoldArgs (GetArgs (Text -> ByteString)) ExBudgetStream
BuiltinCostModel -> Text -> ExBudgetStream
forall a.
ExMemoryUsage a =>
BuiltinCostModel -> a -> ExBudgetStream
costingFun
encodeUtf8Meaning_V2 :: BuiltinMeaning val BuiltinCostModel
encodeUtf8Meaning_V2 =
let encodeUtf8D :: TextCostedByByteLength -> BS.ByteString
encodeUtf8D :: TextCostedByByteLength -> ByteString
encodeUtf8D (TextCostedByByteLength Text
t) = Text -> ByteString
encodeUtf8 Text
t
{-# INLINE encodeUtf8D #-}
in (TextCostedByByteLength -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (TextCostedByByteLength -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(TextCostedByByteLength -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (TextCostedByByteLength -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
TextCostedByByteLength -> ByteString
encodeUtf8D
BuiltinCostModel
-> FoldArgs
(GetArgs (TextCostedByByteLength -> ByteString)) ExBudgetStream
BuiltinCostModel -> TextCostedByByteLength -> ExBudgetStream
forall a.
ExMemoryUsage a =>
BuiltinCostModel -> a -> ExBudgetStream
costingFun
in case BuiltinSemanticsVariant DefaultFun
semvar of
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantA -> BuiltinMeaning val BuiltinCostModel
encodeUtf8Meaning_V1
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantB -> BuiltinMeaning val BuiltinCostModel
encodeUtf8Meaning_V1
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantC -> BuiltinMeaning val BuiltinCostModel
encodeUtf8Meaning_V1
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantD -> BuiltinMeaning val BuiltinCostModel
encodeUtf8Meaning_V2
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantE -> BuiltinMeaning val BuiltinCostModel
encodeUtf8Meaning_V2
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
DecodeUtf8
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let decodeUtf8D :: CByteString -> BuiltinResult Text
decodeUtf8D :: CByteString -> BuiltinResult Text
decodeUtf8D (CByteString ByteString
s)
| ByteString -> Bool
BS.isValidUtf8 ByteString
s =
let !(SBS.SBS ByteArray#
arr) = ByteString -> ShortByteString
SBS.toShort ByteString
s
in Text -> BuiltinResult Text
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> BuiltinResult Text) -> Text -> BuiltinResult Text
forall a b. (a -> b) -> a -> b
$ Array -> Int -> Int -> Text
Text (ByteArray# -> Array
ByteArray ByteArray#
arr) Int
0 (ByteString -> Int
BS.length ByteString
s)
| Bool
otherwise = String -> BuiltinResult Text
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"decodeUtf8: invalid input"
{-# INLINE decodeUtf8D #-}
in (CByteString -> BuiltinResult Text)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CByteString -> BuiltinResult Text)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> BuiltinResult Text)
-> (cost
-> FoldArgs
(GetArgs (CByteString -> BuiltinResult Text)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> BuiltinResult Text
decodeUtf8D
(CostingFun ModelOneArgument -> CByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramDecodeUtf8)
| Bool
otherwise =
let decodeUtf8D :: BS.ByteString -> BuiltinResult Text
decodeUtf8D :: ByteString -> BuiltinResult Text
decodeUtf8D ByteString
s
| ByteString -> Bool
BS.isValidUtf8 ByteString
s =
let !(SBS.SBS ByteArray#
arr) = ByteString -> ShortByteString
SBS.toShort ByteString
s
in Text -> BuiltinResult Text
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Text -> BuiltinResult Text) -> Text -> BuiltinResult Text
forall a b. (a -> b) -> a -> b
$ Array -> Int -> Int -> Text
Text (ByteArray# -> Array
ByteArray ByteArray#
arr) Int
0 (ByteString -> Int
BS.length ByteString
s)
| Bool
otherwise = String -> BuiltinResult Text
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"decodeUtf8: invalid input"
{-# INLINE decodeUtf8D #-}
in (ByteString -> BuiltinResult Text)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> BuiltinResult Text)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> BuiltinResult Text)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> BuiltinResult Text)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> BuiltinResult Text
decodeUtf8D
(CostingFun ModelOneArgument -> ByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramDecodeUtf8)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
IfThenElse =
let ifThenElseDenotation :: Bool -> a -> a -> a
ifThenElseDenotation :: forall a. Bool -> a -> a -> a
ifThenElseDenotation Bool
b a
x a
y = if Bool
b then a
x else a
y
{-# INLINE ifThenElseDenotation #-}
in (Bool
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0)))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(Bool
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Bool
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0)))
-> (cost
-> FoldArgs
(GetArgs
(Bool
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Bool
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
forall a. Bool -> a -> a -> a
ifThenElseDenotation
(CostingFun ModelThreeArguments
-> Bool
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> Bool
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> Bool
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramIfThenElse)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
ChooseUnit =
let chooseUnitDenotation :: () -> a -> a
chooseUnitDenotation :: forall a. () -> a -> a
chooseUnitDenotation () a
x = a
x
{-# INLINE chooseUnitDenotation #-}
in (()
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0)))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(()
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(()
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0)))
-> (cost
-> FoldArgs
(GetArgs
(()
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
()
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
forall a. () -> a -> a
chooseUnitDenotation
(CostingFun ModelTwoArguments
-> () -> Opaque val (TyVarRep ('TyNameRep "a" 0)) -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ()
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ()
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramChooseUnit)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Trace =
let traceDenotation :: Text -> a -> BuiltinResult a
traceDenotation :: forall a. Text -> a -> BuiltinResult a
traceDenotation Text
text a
a = a
a a -> BuiltinResult () -> BuiltinResult a
forall a b. a -> BuiltinResult b -> BuiltinResult a
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ Text -> BuiltinResult ()
emit Text
text
{-# INLINE traceDenotation #-}
in (Text
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0))))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(Text
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0)))))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Text
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0))))
-> (cost
-> FoldArgs
(GetArgs
(Text
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0)))))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Text
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0)))
forall a. Text -> a -> BuiltinResult a
traceDenotation
(CostingFun ModelTwoArguments
-> Text
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Text
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Text
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramTrace)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
FstPair =
let fstPairDenotation :: SomeConstant uni (a, b) -> BuiltinResult (Opaque val a)
fstPairDenotation :: forall a b. SomeConstant uni (a, b) -> BuiltinResult (Opaque val a)
fstPairDenotation (SomeConstant (Some (ValueOf uni (Esc a)
uniPairAB a
xy))) =
case uni (Esc a)
uniPairAB of
DefaultUniPair DefaultUni (Esc a2)
uniA DefaultUni (Esc a1)
_ -> Opaque val a -> BuiltinResult (Opaque val a)
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Opaque val a -> BuiltinResult (Opaque val a))
-> (a2 -> Opaque val a) -> a2 -> BuiltinResult (Opaque val a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. UniOf (Opaque val a) (Esc a2) -> a2 -> Opaque val a
forall a term. HasConstant term => UniOf term (Esc a) -> a -> term
fromValueOf UniOf (Opaque val a) (Esc a2)
DefaultUni (Esc a2)
uniA (a2 -> BuiltinResult (Opaque val a))
-> a2 -> BuiltinResult (Opaque val a)
forall a b. (a -> b) -> a -> b
$ (a2, a1) -> a2
forall a b. (a, b) -> a
fst a
(a2, a1)
xy
uni (Esc a)
_ ->
BuiltinError -> BuiltinResult (Opaque val a)
forall a. BuiltinError -> BuiltinResult a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (BuiltinError -> BuiltinResult (Opaque val a))
-> BuiltinError -> BuiltinResult (Opaque val a)
forall a b. (a -> b) -> a -> b
$ Text -> BuiltinError
structuralUnliftingError Text
"Expected a pair but got something else"
{-# INLINE fstPairDenotation #-}
in (SomeConstant
uni (TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0))))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(SomeConstant
uni (TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0)))))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(SomeConstant
uni (TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0))))
-> (cost
-> FoldArgs
(GetArgs
(SomeConstant
uni (TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0)))))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
SomeConstant
uni (TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0)))
forall a b. SomeConstant uni (a, b) -> BuiltinResult (Opaque val a)
fstPairDenotation
(CostingFun ModelOneArgument
-> SomeConstant
DefaultUni
(TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument
-> SomeConstant
DefaultUni
(TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> SomeConstant
DefaultUni
(TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramFstPair)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
SndPair =
let sndPairDenotation :: SomeConstant uni (a, b) -> BuiltinResult (Opaque val b)
sndPairDenotation :: forall a b. SomeConstant uni (a, b) -> BuiltinResult (Opaque val b)
sndPairDenotation (SomeConstant (Some (ValueOf uni (Esc a)
uniPairAB a
xy))) =
case uni (Esc a)
uniPairAB of
DefaultUniPair DefaultUni (Esc a2)
_ DefaultUni (Esc a1)
uniB -> Opaque val b -> BuiltinResult (Opaque val b)
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Opaque val b -> BuiltinResult (Opaque val b))
-> (a1 -> Opaque val b) -> a1 -> BuiltinResult (Opaque val b)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. UniOf (Opaque val b) (Esc a1) -> a1 -> Opaque val b
forall a term. HasConstant term => UniOf term (Esc a) -> a -> term
fromValueOf UniOf (Opaque val b) (Esc a1)
DefaultUni (Esc a1)
uniB (a1 -> BuiltinResult (Opaque val b))
-> a1 -> BuiltinResult (Opaque val b)
forall a b. (a -> b) -> a -> b
$ (a2, a1) -> a1
forall a b. (a, b) -> b
snd a
(a2, a1)
xy
uni (Esc a)
_ ->
BuiltinError -> BuiltinResult (Opaque val b)
forall a. BuiltinError -> BuiltinResult a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (BuiltinError -> BuiltinResult (Opaque val b))
-> BuiltinError -> BuiltinResult (Opaque val b)
forall a b. (a -> b) -> a -> b
$ Text -> BuiltinError
structuralUnliftingError Text
"Expected a pair but got something else"
{-# INLINE sndPairDenotation #-}
in (SomeConstant
uni (TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "b" 1))))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(SomeConstant
uni (TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "b" 1)))))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(SomeConstant
uni (TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "b" 1))))
-> (cost
-> FoldArgs
(GetArgs
(SomeConstant
uni (TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "b" 1)))))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
SomeConstant
uni (TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "b" 1)))
forall a b. SomeConstant uni (a, b) -> BuiltinResult (Opaque val b)
sndPairDenotation
(CostingFun ModelOneArgument
-> SomeConstant
DefaultUni
(TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument
-> SomeConstant
DefaultUni
(TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> SomeConstant
DefaultUni
(TyVarRep ('TyNameRep "a" 0), TyVarRep ('TyNameRep "b" 1))
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramSndPair)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
ChooseList =
let chooseListDenotation :: SomeConstant uni [a] -> b -> b -> BuiltinResult b
chooseListDenotation :: forall a b. SomeConstant uni [a] -> b -> b -> BuiltinResult b
chooseListDenotation (SomeConstant (Some (ValueOf uni (Esc a)
uniListA a
xs))) b
a b
b =
case uni (Esc a)
uniListA of
DefaultUniList DefaultUni (Esc a1)
_ -> b -> BuiltinResult b
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (b -> BuiltinResult b) -> b -> BuiltinResult b
forall a b. (a -> b) -> a -> b
$ case a
xs of
[] -> b
a
a1
_ : [a1]
_ -> b
b
uni (Esc a)
_ ->
BuiltinError -> BuiltinResult b
forall a. BuiltinError -> BuiltinResult a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (BuiltinError -> BuiltinResult b)
-> BuiltinError -> BuiltinResult b
forall a b. (a -> b) -> a -> b
$ Text -> BuiltinError
structuralUnliftingError Text
"Expected a list but got something else"
{-# INLINE chooseListDenotation #-}
in (SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "b" 1))))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "b" 1)))))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "b" 1))))
-> (cost
-> FoldArgs
(GetArgs
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "b" 1)))))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "b" 1)))
forall a b. SomeConstant uni [a] -> b -> b -> BuiltinResult b
chooseListDenotation
(CostingFun ModelThreeArguments
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> Opaque val (TyVarRep ('TyNameRep "b" 1))
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramChooseList)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
MkCons =
let mkConsDenotation
:: SomeConstant uni a -> SomeConstant uni [a] -> BuiltinResult (Opaque val [a])
mkConsDenotation :: forall a.
SomeConstant uni a
-> SomeConstant uni [a] -> BuiltinResult (Opaque val [a])
mkConsDenotation
(SomeConstant (Some (ValueOf uni (Esc a)
uniA a
x)))
(SomeConstant (Some (ValueOf uni (Esc a)
uniListA a
xs))) =
case uni (Esc a)
uniListA of
DefaultUniList DefaultUni (Esc a1)
uniA' -> case uni (Esc a)
uniA uni (Esc a) -> uni (Esc a1) -> Maybe (Esc a :~: Esc a1)
forall a b. uni a -> uni b -> Maybe (a :~: b)
forall k (f :: k -> *) (a :: k) (b :: k).
GEq f =>
f a -> f b -> Maybe (a :~: b)
`geq` uni (Esc a1)
DefaultUni (Esc a1)
uniA' of
Just Esc a :~: Esc a1
Refl -> Opaque val [a] -> BuiltinResult (Opaque val [a])
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Opaque val [a] -> BuiltinResult (Opaque val [a]))
-> ([a] -> Opaque val [a]) -> [a] -> BuiltinResult (Opaque val [a])
forall b c a. (b -> c) -> (a -> b) -> a -> c
. UniOf (Opaque val [a]) (Esc [a]) -> [a] -> Opaque val [a]
forall a term. HasConstant term => UniOf term (Esc a) -> a -> term
fromValueOf uni (Esc a)
UniOf (Opaque val [a]) (Esc [a])
uniListA ([a] -> BuiltinResult (Opaque val [a]))
-> [a] -> BuiltinResult (Opaque val [a])
forall a b. (a -> b) -> a -> b
$ a
x a -> [a] -> [a]
forall a. a -> [a] -> [a]
: a
[a]
xs
Maybe (Esc a :~: Esc a1)
Nothing ->
BuiltinError -> BuiltinResult (Opaque val [a])
forall a. BuiltinError -> BuiltinResult a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (BuiltinError -> BuiltinResult (Opaque val [a]))
-> BuiltinError -> BuiltinResult (Opaque val [a])
forall a b. (a -> b) -> a -> b
$
Text -> BuiltinError
structuralUnliftingError
Text
"The type of the value does not match the type of elements in the list"
uni (Esc a)
_ -> BuiltinError -> BuiltinResult (Opaque val [a])
forall a. BuiltinError -> BuiltinResult a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (BuiltinError -> BuiltinResult (Opaque val [a]))
-> BuiltinError -> BuiltinResult (Opaque val [a])
forall a b. (a -> b) -> a -> b
$ Text -> BuiltinError
structuralUnliftingError Text
"Expected a list but got something else"
{-# INLINE mkConsDenotation #-}
in (SomeConstant uni (TyVarRep ('TyNameRep "a" 0))
-> SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)]))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(SomeConstant uni (TyVarRep ('TyNameRep "a" 0))
-> SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)])))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(SomeConstant uni (TyVarRep ('TyNameRep "a" 0))
-> SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)]))
-> (cost
-> FoldArgs
(GetArgs
(SomeConstant uni (TyVarRep ('TyNameRep "a" 0))
-> SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)])))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
SomeConstant uni (TyVarRep ('TyNameRep "a" 0))
-> SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)])
forall a.
SomeConstant uni a
-> SomeConstant uni [a] -> BuiltinResult (Opaque val [a])
mkConsDenotation
(CostingFun ModelTwoArguments
-> SomeConstant DefaultUni (TyVarRep ('TyNameRep "a" 0))
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> SomeConstant DefaultUni (TyVarRep ('TyNameRep "a" 0))
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> SomeConstant DefaultUni (TyVarRep ('TyNameRep "a" 0))
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramMkCons)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
HeadList =
let headListDenotation :: SomeConstant uni [a] -> BuiltinResult (Opaque val a)
headListDenotation :: forall a. SomeConstant uni [a] -> BuiltinResult (Opaque val a)
headListDenotation (SomeConstant (Some (ValueOf uni (Esc a)
uniListA a
xs))) =
case uni (Esc a)
uniListA of
DefaultUniList DefaultUni (Esc a1)
uniA -> case a
xs of
[] -> String -> BuiltinResult (Opaque val a)
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Expected a non-empty list but got an empty one"
a1
x : [a1]
_ -> Opaque val a -> BuiltinResult (Opaque val a)
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Opaque val a -> BuiltinResult (Opaque val a))
-> Opaque val a -> BuiltinResult (Opaque val a)
forall a b. (a -> b) -> a -> b
$ UniOf (Opaque val a) (Esc a1) -> a1 -> Opaque val a
forall a term. HasConstant term => UniOf term (Esc a) -> a -> term
fromValueOf UniOf (Opaque val a) (Esc a1)
DefaultUni (Esc a1)
uniA a1
x
uni (Esc a)
_ -> BuiltinError -> BuiltinResult (Opaque val a)
forall a. BuiltinError -> BuiltinResult a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (BuiltinError -> BuiltinResult (Opaque val a))
-> BuiltinError -> BuiltinResult (Opaque val a)
forall a b. (a -> b) -> a -> b
$ Text -> BuiltinError
structuralUnliftingError Text
"Expected a list but got something else"
{-# INLINE headListDenotation #-}
in (SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0))))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0)))))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0))))
-> (cost
-> FoldArgs
(GetArgs
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0)))))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0)))
forall a. SomeConstant uni [a] -> BuiltinResult (Opaque val a)
headListDenotation
(CostingFun ModelOneArgument
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramHeadList)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
TailList =
let tailListDenotation :: SomeConstant uni [a] -> BuiltinResult (Opaque val [a])
tailListDenotation :: forall a. SomeConstant uni [a] -> BuiltinResult (Opaque val [a])
tailListDenotation (SomeConstant (Some (ValueOf uni (Esc a)
uniListA a
xs))) =
case uni (Esc a)
uniListA of
DefaultUniList DefaultUni (Esc a1)
_argUni ->
case a
xs of
[] -> String -> BuiltinResult (Opaque val [a])
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Expected a non-empty list but got an empty one"
a1
_ : [a1]
xs' -> Opaque val [a] -> BuiltinResult (Opaque val [a])
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Opaque val [a] -> BuiltinResult (Opaque val [a]))
-> Opaque val [a] -> BuiltinResult (Opaque val [a])
forall a b. (a -> b) -> a -> b
$ UniOf (Opaque val [a]) (Esc [a1]) -> [a1] -> Opaque val [a]
forall a term. HasConstant term => UniOf term (Esc a) -> a -> term
fromValueOf uni (Esc a)
UniOf (Opaque val [a]) (Esc [a1])
uniListA [a1]
xs'
uni (Esc a)
_ -> BuiltinError -> BuiltinResult (Opaque val [a])
forall a. BuiltinError -> BuiltinResult a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (BuiltinError -> BuiltinResult (Opaque val [a]))
-> BuiltinError -> BuiltinResult (Opaque val [a])
forall a b. (a -> b) -> a -> b
$ Text -> BuiltinError
structuralUnliftingError Text
"Expected a list but got something else"
{-# INLINE tailListDenotation #-}
in (SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)]))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)])))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)]))
-> (cost
-> FoldArgs
(GetArgs
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)])))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)])
forall a. SomeConstant uni [a] -> BuiltinResult (Opaque val [a])
tailListDenotation
(CostingFun ModelOneArgument
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramTailList)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
NullList =
let nullListDenotation :: SomeConstant uni [a] -> BuiltinResult Bool
nullListDenotation :: forall a. SomeConstant uni [a] -> BuiltinResult Bool
nullListDenotation (SomeConstant (Some (ValueOf uni (Esc a)
uniListA a
xs))) =
case uni (Esc a)
uniListA of
DefaultUniList DefaultUni (Esc a1)
_uniA -> Bool -> BuiltinResult Bool
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Bool -> BuiltinResult Bool) -> Bool -> BuiltinResult Bool
forall a b. (a -> b) -> a -> b
$ [a1] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null a
[a1]
xs
uni (Esc a)
_ -> BuiltinError -> BuiltinResult Bool
forall a. BuiltinError -> BuiltinResult a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (BuiltinError -> BuiltinResult Bool)
-> BuiltinError -> BuiltinResult Bool
forall a b. (a -> b) -> a -> b
$ Text -> BuiltinError
structuralUnliftingError Text
"Expected a list but got something else"
{-# INLINE nullListDenotation #-}
in (SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult Bool)
-> (cost
-> FoldArgs
(GetArgs
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult Bool
forall a. SomeConstant uni [a] -> BuiltinResult Bool
nullListDenotation
(CostingFun ModelOneArgument
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramNullList)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
ChooseData =
let chooseDataDenotation :: Data -> a -> a -> a -> a -> a -> a
chooseDataDenotation :: forall a. Data -> a -> a -> a -> a -> a -> a
chooseDataDenotation Data
d a
xConstr a
xMap a
xList a
xI a
xB =
case Data
d of
Constr {} -> a
xConstr
Map {} -> a
xMap
List {} -> a
xList
I {} -> a
xI
B {} -> a
xB
{-# INLINE chooseDataDenotation #-}
in (Data
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0)))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(Data
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Data
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0)))
-> (cost
-> FoldArgs
(GetArgs
(Data
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Data
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
forall a. Data -> a -> a -> a -> a -> a -> a
chooseDataDenotation
(CostingFun ModelSixArguments
-> Data
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> ExBudgetStream
forall a1 a2 a3 a4 a5 a6.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3,
ExMemoryUsage a4, ExMemoryUsage a5, ExMemoryUsage a6) =>
CostingFun ModelSixArguments
-> a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> ExBudgetStream
runCostingFunSixArguments (CostingFun ModelSixArguments
-> Data
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelSixArguments)
-> BuiltinCostModel
-> Data
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> Opaque val (TyVarRep ('TyNameRep "a" 0))
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelSixArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelSixArguments
paramChooseData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
ConstrData
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let constrDataD :: Word64 -> [Data] -> Data
constrDataD :: Word64 -> [Data] -> Data
constrDataD = Integer -> [Data] -> Data
Constr (Integer -> [Data] -> Data)
-> (Word64 -> Integer) -> Word64 -> [Data] -> Data
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> Integer
forall a. Integral a => a -> Integer
toInteger
{-# INLINE constrDataD #-}
in (Word64 -> [Data] -> Data)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Word64 -> [Data] -> Data)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Word64 -> [Data] -> Data)
-> (cost
-> FoldArgs (GetArgs (Word64 -> [Data] -> Data)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Word64 -> [Data] -> Data
constrDataD
(CostingFun ModelTwoArguments -> Word64 -> [Data] -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Word64 -> [Data] -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Word64
-> [Data]
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramConstrData)
| Bool
otherwise =
let constrDataD :: Integer -> [Data] -> Data
constrDataD :: Integer -> [Data] -> Data
constrDataD = Integer -> [Data] -> Data
Constr
{-# INLINE constrDataD #-}
in (Integer -> [Data] -> Data)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Integer -> [Data] -> Data)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> [Data] -> Data)
-> (cost
-> FoldArgs (GetArgs (Integer -> [Data] -> Data)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> [Data] -> Data
constrDataD
(CostingFun ModelTwoArguments -> Integer -> [Data] -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> [Data] -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> [Data]
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramConstrData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
MapData =
let mapDataDenotation :: [(Data, Data)] -> Data
mapDataDenotation :: [(Data, Data)] -> Data
mapDataDenotation = [(Data, Data)] -> Data
Map
{-# INLINE mapDataDenotation #-}
in ([(Data, Data)] -> Data)
-> (BuiltinCostModel
-> FoldArgs (GetArgs ([(Data, Data)] -> Data)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
([(Data, Data)] -> Data)
-> (cost
-> FoldArgs (GetArgs ([(Data, Data)] -> Data)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
[(Data, Data)] -> Data
mapDataDenotation
(CostingFun ModelOneArgument -> [(Data, Data)] -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> [(Data, Data)] -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> [(Data, Data)]
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramMapData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
ListData =
let listDataDenotation :: [Data] -> Data
listDataDenotation :: [Data] -> Data
listDataDenotation = [Data] -> Data
List
{-# INLINE listDataDenotation #-}
in ([Data] -> Data)
-> (BuiltinCostModel
-> FoldArgs (GetArgs ([Data] -> Data)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
([Data] -> Data)
-> (cost -> FoldArgs (GetArgs ([Data] -> Data)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
[Data] -> Data
listDataDenotation
(CostingFun ModelOneArgument -> [Data] -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> [Data] -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> [Data]
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramListData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
IData =
let iDataDenotation :: Integer -> Data
iDataDenotation :: Integer -> Data
iDataDenotation = Integer -> Data
I
{-# INLINE iDataDenotation #-}
in (Integer -> Data)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Integer -> Data)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Data)
-> (cost -> FoldArgs (GetArgs (Integer -> Data)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Data
iDataDenotation
(CostingFun ModelOneArgument -> Integer -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> Integer -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> Integer
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramIData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
BData =
let bDataDenotation :: BS.ByteString -> Data
bDataDenotation :: ByteString -> Data
bDataDenotation = ByteString -> Data
B
{-# INLINE bDataDenotation #-}
in (ByteString -> Data)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (ByteString -> Data)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> Data)
-> (cost -> FoldArgs (GetArgs (ByteString -> Data)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> Data
bDataDenotation
(CostingFun ModelOneArgument -> ByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramBData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
UnConstrData =
let unConstrDataDenotation :: Data -> BuiltinResult (Integer, [Data])
unConstrDataDenotation :: Data -> BuiltinResult (Integer, [Data])
unConstrDataDenotation = \case
Constr Integer
i [Data]
ds -> (Integer, [Data]) -> BuiltinResult (Integer, [Data])
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Integer
i, [Data]
ds)
Data
_ ->
String -> BuiltinResult (Integer, [Data])
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Expected the Constr constructor but got a different one"
{-# INLINE unConstrDataDenotation #-}
in (Data -> BuiltinResult (Integer, [Data]))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Data -> BuiltinResult (Integer, [Data]))) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Data -> BuiltinResult (Integer, [Data]))
-> (cost
-> FoldArgs
(GetArgs (Data -> BuiltinResult (Integer, [Data]))) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Data -> BuiltinResult (Integer, [Data])
unConstrDataDenotation
(CostingFun ModelOneArgument -> Data -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> Data -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> Data
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramUnConstrData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
UnMapData =
let unMapDataDenotation :: Data -> BuiltinResult [(Data, Data)]
unMapDataDenotation :: Data -> BuiltinResult [(Data, Data)]
unMapDataDenotation = \case
Map [(Data, Data)]
es -> [(Data, Data)] -> BuiltinResult [(Data, Data)]
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure [(Data, Data)]
es
Data
_ ->
String -> BuiltinResult [(Data, Data)]
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Expected the Map constructor but got a different one"
{-# INLINE unMapDataDenotation #-}
in (Data -> BuiltinResult [(Data, Data)])
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Data -> BuiltinResult [(Data, Data)])) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Data -> BuiltinResult [(Data, Data)])
-> (cost
-> FoldArgs
(GetArgs (Data -> BuiltinResult [(Data, Data)])) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Data -> BuiltinResult [(Data, Data)]
unMapDataDenotation
(CostingFun ModelOneArgument -> Data -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> Data -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> Data
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramUnMapData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
UnListData =
let unListDataDenotation :: Data -> BuiltinResult [Data]
unListDataDenotation :: Data -> BuiltinResult [Data]
unListDataDenotation = \case
List [Data]
ds -> [Data] -> BuiltinResult [Data]
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure [Data]
ds
Data
_ ->
String -> BuiltinResult [Data]
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Expected the List constructor but got a different one"
{-# INLINE unListDataDenotation #-}
in (Data -> BuiltinResult [Data])
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Data -> BuiltinResult [Data])) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Data -> BuiltinResult [Data])
-> (cost
-> FoldArgs
(GetArgs (Data -> BuiltinResult [Data])) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Data -> BuiltinResult [Data]
unListDataDenotation
(CostingFun ModelOneArgument -> Data -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> Data -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> Data
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramUnListData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
UnIData =
let unIDataDenotation :: Data -> BuiltinResult Integer
unIDataDenotation :: Data -> BuiltinResult Integer
unIDataDenotation = \case
I Integer
i -> Integer -> BuiltinResult Integer
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Integer
i
Data
_ ->
String -> BuiltinResult Integer
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Expected the I constructor but got a different one"
{-# INLINE unIDataDenotation #-}
in (Data -> BuiltinResult Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Data -> BuiltinResult Integer)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Data -> BuiltinResult Integer)
-> (cost
-> FoldArgs
(GetArgs (Data -> BuiltinResult Integer)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Data -> BuiltinResult Integer
unIDataDenotation
(CostingFun ModelOneArgument -> Data -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> Data -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> Data
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramUnIData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
UnBData =
let unBDataDenotation :: Data -> BuiltinResult BS.ByteString
unBDataDenotation :: Data -> BuiltinResult ByteString
unBDataDenotation = \case
B ByteString
b -> ByteString -> BuiltinResult ByteString
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ByteString
b
Data
_ ->
String -> BuiltinResult ByteString
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Expected the B constructor but got a different one"
{-# INLINE unBDataDenotation #-}
in (Data -> BuiltinResult ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Data -> BuiltinResult ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Data -> BuiltinResult ByteString)
-> (cost
-> FoldArgs
(GetArgs (Data -> BuiltinResult ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Data -> BuiltinResult ByteString
unBDataDenotation
(CostingFun ModelOneArgument -> Data -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> Data -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> Data
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramUnBData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
EqualsData =
let equalsDataDenotation :: Data -> Data -> Bool
equalsDataDenotation :: Data -> Data -> Bool
equalsDataDenotation = Data -> Data -> Bool
forall a. Eq a => a -> a -> Bool
(==)
{-# INLINE equalsDataDenotation #-}
in (Data -> Data -> Bool)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Data -> Data -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Data -> Data -> Bool)
-> (cost
-> FoldArgs (GetArgs (Data -> Data -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Data -> Data -> Bool
equalsDataDenotation
(CostingFun ModelTwoArguments -> Data -> Data -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments -> Data -> Data -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Data
-> Data
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramEqualsData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
SerialiseData =
let serialiseDataDenotation :: Data -> BS.ByteString
serialiseDataDenotation :: Data -> ByteString
serialiseDataDenotation = ByteString -> ByteString
BSL.toStrict (ByteString -> ByteString)
-> (Data -> ByteString) -> Data -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Data -> ByteString
forall a. Serialise a => a -> ByteString
serialise
{-# INLINE serialiseDataDenotation #-}
in (Data -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Data -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Data -> ByteString)
-> (cost -> FoldArgs (GetArgs (Data -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Data -> ByteString
serialiseDataDenotation
(CostingFun ModelOneArgument -> Data -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> Data -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> Data
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramSerialiseData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
MkPairData =
let mkPairDataDenotation :: Data -> Data -> (Data, Data)
mkPairDataDenotation :: Data -> Data -> (Data, Data)
mkPairDataDenotation = (,)
{-# INLINE mkPairDataDenotation #-}
in (Data -> Data -> (Data, Data))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Data -> Data -> (Data, Data))) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Data -> Data -> (Data, Data))
-> (cost
-> FoldArgs
(GetArgs (Data -> Data -> (Data, Data))) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Data -> Data -> (Data, Data)
mkPairDataDenotation
(CostingFun ModelTwoArguments -> Data -> Data -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments -> Data -> Data -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Data
-> Data
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramMkPairData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
MkNilData =
let mkNilDataDenotation :: () -> [Data]
mkNilDataDenotation :: () -> [Data]
mkNilDataDenotation () = []
{-# INLINE mkNilDataDenotation #-}
in (() -> [Data])
-> (BuiltinCostModel
-> FoldArgs (GetArgs (() -> [Data])) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(() -> [Data])
-> (cost -> FoldArgs (GetArgs (() -> [Data])) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
() -> [Data]
mkNilDataDenotation
(CostingFun ModelOneArgument -> () -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> () -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ()
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramMkNilData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
MkNilPairData =
let mkNilPairDataDenotation :: () -> [(Data, Data)]
mkNilPairDataDenotation :: () -> [(Data, Data)]
mkNilPairDataDenotation () = []
{-# INLINE mkNilPairDataDenotation #-}
in (() -> [(Data, Data)])
-> (BuiltinCostModel
-> FoldArgs (GetArgs (() -> [(Data, Data)])) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(() -> [(Data, Data)])
-> (cost
-> FoldArgs (GetArgs (() -> [(Data, Data)])) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
() -> [(Data, Data)]
mkNilPairDataDenotation
(CostingFun ModelOneArgument -> () -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> () -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ()
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramMkNilPairData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_G1_add =
let bls12_381_G1_addDenotation
:: BLS12_381.G1.Element -> BLS12_381.G1.Element -> BLS12_381.G1.Element
bls12_381_G1_addDenotation :: Element -> Element -> Element
bls12_381_G1_addDenotation = Element -> Element -> Element
BLS12_381.G1.add
{-# INLINE bls12_381_G1_addDenotation #-}
in (Element -> Element -> Element)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Element -> Element -> Element)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Element -> Element -> Element)
-> (cost
-> FoldArgs
(GetArgs (Element -> Element -> Element)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Element -> Element -> Element
bls12_381_G1_addDenotation
(CostingFun ModelTwoArguments
-> Element -> Element -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Element -> Element -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Element
-> Element
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_G1_add)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_G1_neg =
let bls12_381_G1_negDenotation :: BLS12_381.G1.Element -> BLS12_381.G1.Element
bls12_381_G1_negDenotation :: Element -> Element
bls12_381_G1_negDenotation = Element -> Element
BLS12_381.G1.neg
{-# INLINE bls12_381_G1_negDenotation #-}
in (Element -> Element)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Element -> Element)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Element -> Element)
-> (cost -> FoldArgs (GetArgs (Element -> Element)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Element -> Element
bls12_381_G1_negDenotation
(CostingFun ModelOneArgument -> Element -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> Element -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> Element
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramBls12_381_G1_neg)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
Bls12_381_G1_scalarMul
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let bls12_381_G1_scalarMulD
:: Integer -> BLS12_381.G1.Element -> BuiltinResult BLS12_381.G1.Element
bls12_381_G1_scalarMulD :: Integer -> Element -> BuiltinResult Element
bls12_381_G1_scalarMulD = Integer -> Element -> BuiltinResult Element
BLS12_381.G1.scalarMulE
{-# INLINE bls12_381_G1_scalarMulD #-}
in (Integer -> Element -> BuiltinResult Element)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> Element -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Element -> BuiltinResult Element)
-> (cost
-> FoldArgs
(GetArgs (Integer -> Element -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Element -> BuiltinResult Element
bls12_381_G1_scalarMulD
(CostingFun ModelTwoArguments
-> Integer -> Element -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> Element -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> Element
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_G1_scalarMul)
| Bool
otherwise =
let bls12_381_G1_scalarMulD
:: Integer -> BLS12_381.G1.Element -> BLS12_381.G1.Element
bls12_381_G1_scalarMulD :: Integer -> Element -> Element
bls12_381_G1_scalarMulD = Integer -> Element -> Element
BLS12_381.G1.scalarMul
{-# INLINE bls12_381_G1_scalarMulD #-}
in (Integer -> Element -> Element)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> Element -> Element)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Element -> Element)
-> (cost
-> FoldArgs
(GetArgs (Integer -> Element -> Element)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Element -> Element
bls12_381_G1_scalarMulD
(CostingFun ModelTwoArguments
-> Integer -> Element -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> Element -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> Element
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_G1_scalarMul)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_G1_compress =
let bls12_381_G1_compressDenotation :: BLS12_381.G1.Element -> BS.ByteString
bls12_381_G1_compressDenotation :: Element -> ByteString
bls12_381_G1_compressDenotation = Element -> ByteString
BLS12_381.G1.compress
{-# INLINE bls12_381_G1_compressDenotation #-}
in (Element -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Element -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Element -> ByteString)
-> (cost
-> FoldArgs (GetArgs (Element -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Element -> ByteString
bls12_381_G1_compressDenotation
(CostingFun ModelOneArgument -> Element -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> Element -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> Element
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramBls12_381_G1_compress)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_G1_uncompress =
let bls12_381_G1_uncompressD
:: BS.ByteString -> BuiltinResult BLS12_381.G1.Element
bls12_381_G1_uncompressD :: ByteString -> BuiltinResult Element
bls12_381_G1_uncompressD = Either BLSTError Element -> BuiltinResult Element
forall e r. Show e => Either e r -> BuiltinResult r
eitherToBuiltinResult (Either BLSTError Element -> BuiltinResult Element)
-> (ByteString -> Either BLSTError Element)
-> ByteString
-> BuiltinResult Element
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Either BLSTError Element
BLS12_381.G1.uncompress
{-# INLINE bls12_381_G1_uncompressD #-}
in (ByteString -> BuiltinResult Element)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> BuiltinResult Element)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> BuiltinResult Element)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> BuiltinResult Element)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> BuiltinResult Element
bls12_381_G1_uncompressD
(CostingFun ModelOneArgument -> ByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramBls12_381_G1_uncompress)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
Bls12_381_G1_hashToGroup
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let bls12_381_G1_hashToGroupD
:: CByteString -> BS.ByteString -> BuiltinResult BLS12_381.G1.Element
bls12_381_G1_hashToGroupD :: CByteString -> ByteString -> BuiltinResult Element
bls12_381_G1_hashToGroupD (CByteString ByteString
xs) ByteString
ys =
(Either BLS12_381_Error Element -> BuiltinResult Element
forall e r. Show e => Either e r -> BuiltinResult r
eitherToBuiltinResult (Either BLS12_381_Error Element -> BuiltinResult Element)
-> (ByteString -> ByteString -> Either BLS12_381_Error Element)
-> ByteString
-> ByteString
-> BuiltinResult Element
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
.* ByteString -> ByteString -> Either BLS12_381_Error Element
BLS12_381.G1.hashToGroup) ByteString
xs ByteString
ys
{-# INLINE bls12_381_G1_hashToGroupD #-}
in (CByteString -> ByteString -> BuiltinResult Element)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CByteString -> ByteString -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> ByteString -> BuiltinResult Element)
-> (cost
-> FoldArgs
(GetArgs (CByteString -> ByteString -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> ByteString -> BuiltinResult Element
bls12_381_G1_hashToGroupD
(CostingFun ModelTwoArguments
-> CByteString -> ByteString -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_G1_hashToGroup)
| Bool
otherwise =
let bls12_381_G1_hashToGroupD
:: BS.ByteString -> BS.ByteString -> BuiltinResult BLS12_381.G1.Element
bls12_381_G1_hashToGroupD :: ByteString -> ByteString -> BuiltinResult Element
bls12_381_G1_hashToGroupD = Either BLS12_381_Error Element -> BuiltinResult Element
forall e r. Show e => Either e r -> BuiltinResult r
eitherToBuiltinResult (Either BLS12_381_Error Element -> BuiltinResult Element)
-> (ByteString -> ByteString -> Either BLS12_381_Error Element)
-> ByteString
-> ByteString
-> BuiltinResult Element
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
.* ByteString -> ByteString -> Either BLS12_381_Error Element
BLS12_381.G1.hashToGroup
{-# INLINE bls12_381_G1_hashToGroupD #-}
in (ByteString -> ByteString -> BuiltinResult Element)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> ByteString -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString -> BuiltinResult Element)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> ByteString -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString -> BuiltinResult Element
bls12_381_G1_hashToGroupD
(CostingFun ModelTwoArguments
-> ByteString -> ByteString -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_G1_hashToGroup)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_G1_equal =
let bls12_381_G1_equalDenotation :: BLS12_381.G1.Element -> BLS12_381.G1.Element -> Bool
bls12_381_G1_equalDenotation :: Element -> Element -> Bool
bls12_381_G1_equalDenotation = Element -> Element -> Bool
forall a. Eq a => a -> a -> Bool
(==)
{-# INLINE bls12_381_G1_equalDenotation #-}
in (Element -> Element -> Bool)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Element -> Element -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Element -> Element -> Bool)
-> (cost
-> FoldArgs (GetArgs (Element -> Element -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Element -> Element -> Bool
bls12_381_G1_equalDenotation
(CostingFun ModelTwoArguments
-> Element -> Element -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Element -> Element -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Element
-> Element
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_G1_equal)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_G2_add =
let bls12_381_G2_addDenotation
:: BLS12_381.G2.Element -> BLS12_381.G2.Element -> BLS12_381.G2.Element
bls12_381_G2_addDenotation :: Element -> Element -> Element
bls12_381_G2_addDenotation = Element -> Element -> Element
BLS12_381.G2.add
{-# INLINE bls12_381_G2_addDenotation #-}
in (Element -> Element -> Element)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Element -> Element -> Element)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Element -> Element -> Element)
-> (cost
-> FoldArgs
(GetArgs (Element -> Element -> Element)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Element -> Element -> Element
bls12_381_G2_addDenotation
(CostingFun ModelTwoArguments
-> Element -> Element -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Element -> Element -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Element
-> Element
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_G2_add)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_G2_neg =
let bls12_381_G2_negDenotation :: BLS12_381.G2.Element -> BLS12_381.G2.Element
bls12_381_G2_negDenotation :: Element -> Element
bls12_381_G2_negDenotation = Element -> Element
BLS12_381.G2.neg
{-# INLINE bls12_381_G2_negDenotation #-}
in (Element -> Element)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Element -> Element)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Element -> Element)
-> (cost -> FoldArgs (GetArgs (Element -> Element)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Element -> Element
bls12_381_G2_negDenotation
(CostingFun ModelOneArgument -> Element -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> Element -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> Element
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramBls12_381_G2_neg)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
Bls12_381_G2_scalarMul
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let bls12_381_G2_scalarMulD
:: Integer -> BLS12_381.G2.Element -> BuiltinResult BLS12_381.G2.Element
bls12_381_G2_scalarMulD :: Integer -> Element -> BuiltinResult Element
bls12_381_G2_scalarMulD = Integer -> Element -> BuiltinResult Element
BLS12_381.G2.scalarMulE
{-# INLINE bls12_381_G2_scalarMulD #-}
in (Integer -> Element -> BuiltinResult Element)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> Element -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Element -> BuiltinResult Element)
-> (cost
-> FoldArgs
(GetArgs (Integer -> Element -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Element -> BuiltinResult Element
bls12_381_G2_scalarMulD
(CostingFun ModelTwoArguments
-> Integer -> Element -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> Element -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> Element
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_G2_scalarMul)
| Bool
otherwise =
let bls12_381_G2_scalarMulD
:: Integer -> BLS12_381.G2.Element -> BLS12_381.G2.Element
bls12_381_G2_scalarMulD :: Integer -> Element -> Element
bls12_381_G2_scalarMulD = Integer -> Element -> Element
BLS12_381.G2.scalarMul
{-# INLINE bls12_381_G2_scalarMulD #-}
in (Integer -> Element -> Element)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> Element -> Element)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Element -> Element)
-> (cost
-> FoldArgs
(GetArgs (Integer -> Element -> Element)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Element -> Element
bls12_381_G2_scalarMulD
(CostingFun ModelTwoArguments
-> Integer -> Element -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> Element -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> Element
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_G2_scalarMul)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_G2_compress =
let bls12_381_G2_compressDenotation :: BLS12_381.G2.Element -> BS.ByteString
bls12_381_G2_compressDenotation :: Element -> ByteString
bls12_381_G2_compressDenotation = Element -> ByteString
BLS12_381.G2.compress
{-# INLINE bls12_381_G2_compressDenotation #-}
in (Element -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Element -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Element -> ByteString)
-> (cost
-> FoldArgs (GetArgs (Element -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Element -> ByteString
bls12_381_G2_compressDenotation
(CostingFun ModelOneArgument -> Element -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> Element -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> Element
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramBls12_381_G2_compress)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_G2_uncompress =
let bls12_381_G2_uncompressD
:: ByteString -> BuiltinResult BLS12_381.G2.Element
bls12_381_G2_uncompressD :: ByteString -> BuiltinResult Element
bls12_381_G2_uncompressD =
Either BLSTError Element -> BuiltinResult Element
forall e r. Show e => Either e r -> BuiltinResult r
eitherToBuiltinResult (Either BLSTError Element -> BuiltinResult Element)
-> (ByteString -> Either BLSTError Element)
-> ByteString
-> BuiltinResult Element
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Either BLSTError Element
BLS12_381.G2.uncompress
{-# INLINE bls12_381_G2_uncompressD #-}
in (ByteString -> BuiltinResult Element)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> BuiltinResult Element)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> BuiltinResult Element)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> BuiltinResult Element)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> BuiltinResult Element
bls12_381_G2_uncompressD
(CostingFun ModelOneArgument -> ByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramBls12_381_G2_uncompress)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
Bls12_381_G2_hashToGroup
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let bls12_381_G2_hashToGroupD
:: CByteString -> BS.ByteString -> BuiltinResult BLS12_381.G2.Element
bls12_381_G2_hashToGroupD :: CByteString -> ByteString -> BuiltinResult Element
bls12_381_G2_hashToGroupD (CByteString ByteString
xs) ByteString
ys =
(Either BLS12_381_Error Element -> BuiltinResult Element
forall e r. Show e => Either e r -> BuiltinResult r
eitherToBuiltinResult (Either BLS12_381_Error Element -> BuiltinResult Element)
-> (ByteString -> ByteString -> Either BLS12_381_Error Element)
-> ByteString
-> ByteString
-> BuiltinResult Element
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
.* ByteString -> ByteString -> Either BLS12_381_Error Element
BLS12_381.G2.hashToGroup) ByteString
xs ByteString
ys
{-# INLINE bls12_381_G2_hashToGroupD #-}
in (CByteString -> ByteString -> BuiltinResult Element)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CByteString -> ByteString -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> ByteString -> BuiltinResult Element)
-> (cost
-> FoldArgs
(GetArgs (CByteString -> ByteString -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> ByteString -> BuiltinResult Element
bls12_381_G2_hashToGroupD
(CostingFun ModelTwoArguments
-> CByteString -> ByteString -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_G2_hashToGroup)
| Bool
otherwise =
let bls12_381_G2_hashToGroupD
:: BS.ByteString -> BS.ByteString -> BuiltinResult BLS12_381.G2.Element
bls12_381_G2_hashToGroupD :: ByteString -> ByteString -> BuiltinResult Element
bls12_381_G2_hashToGroupD = Either BLS12_381_Error Element -> BuiltinResult Element
forall e r. Show e => Either e r -> BuiltinResult r
eitherToBuiltinResult (Either BLS12_381_Error Element -> BuiltinResult Element)
-> (ByteString -> ByteString -> Either BLS12_381_Error Element)
-> ByteString
-> ByteString
-> BuiltinResult Element
forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
.* ByteString -> ByteString -> Either BLS12_381_Error Element
BLS12_381.G2.hashToGroup
{-# INLINE bls12_381_G2_hashToGroupD #-}
in (ByteString -> ByteString -> BuiltinResult Element)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> ByteString -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString -> BuiltinResult Element)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> ByteString -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString -> BuiltinResult Element
bls12_381_G2_hashToGroupD
(CostingFun ModelTwoArguments
-> ByteString -> ByteString -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_G2_hashToGroup)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_G2_equal =
let bls12_381_G2_equalDenotation :: BLS12_381.G2.Element -> BLS12_381.G2.Element -> Bool
bls12_381_G2_equalDenotation :: Element -> Element -> Bool
bls12_381_G2_equalDenotation = Element -> Element -> Bool
forall a. Eq a => a -> a -> Bool
(==)
{-# INLINE bls12_381_G2_equalDenotation #-}
in (Element -> Element -> Bool)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (Element -> Element -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Element -> Element -> Bool)
-> (cost
-> FoldArgs (GetArgs (Element -> Element -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Element -> Element -> Bool
bls12_381_G2_equalDenotation
(CostingFun ModelTwoArguments
-> Element -> Element -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Element -> Element -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Element
-> Element
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_G2_equal)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_millerLoop =
let bls12_381_millerLoopDenotation
:: BLS12_381.G1.Element -> BLS12_381.G2.Element -> BLS12_381.Pairing.MlResult
bls12_381_millerLoopDenotation :: Element -> Element -> MlResult
bls12_381_millerLoopDenotation = Element -> Element -> MlResult
BLS12_381.Pairing.millerLoop
{-# INLINE bls12_381_millerLoopDenotation #-}
in (Element -> Element -> MlResult)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Element -> Element -> MlResult)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Element -> Element -> MlResult)
-> (cost
-> FoldArgs
(GetArgs (Element -> Element -> MlResult)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Element -> Element -> MlResult
bls12_381_millerLoopDenotation
(CostingFun ModelTwoArguments
-> Element -> Element -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Element -> Element -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Element
-> Element
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_millerLoop)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_mulMlResult =
let bls12_381_mulMlResultDenotation
:: BLS12_381.Pairing.MlResult
-> BLS12_381.Pairing.MlResult
-> BLS12_381.Pairing.MlResult
bls12_381_mulMlResultDenotation :: MlResult -> MlResult -> MlResult
bls12_381_mulMlResultDenotation = MlResult -> MlResult -> MlResult
BLS12_381.Pairing.mulMlResult
{-# INLINE bls12_381_mulMlResultDenotation #-}
in (MlResult -> MlResult -> MlResult)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (MlResult -> MlResult -> MlResult)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(MlResult -> MlResult -> MlResult)
-> (cost
-> FoldArgs
(GetArgs (MlResult -> MlResult -> MlResult)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
MlResult -> MlResult -> MlResult
bls12_381_mulMlResultDenotation
(CostingFun ModelTwoArguments
-> MlResult -> MlResult -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> MlResult -> MlResult -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> MlResult
-> MlResult
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_mulMlResult)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_finalVerify =
let bls12_381_finalVerifyDenotation
:: BLS12_381.Pairing.MlResult -> BLS12_381.Pairing.MlResult -> Bool
bls12_381_finalVerifyDenotation :: MlResult -> MlResult -> Bool
bls12_381_finalVerifyDenotation = MlResult -> MlResult -> Bool
BLS12_381.Pairing.finalVerify
{-# INLINE bls12_381_finalVerifyDenotation #-}
in (MlResult -> MlResult -> Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (MlResult -> MlResult -> Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(MlResult -> MlResult -> Bool)
-> (cost
-> FoldArgs
(GetArgs (MlResult -> MlResult -> Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
MlResult -> MlResult -> Bool
bls12_381_finalVerifyDenotation
(CostingFun ModelTwoArguments
-> MlResult -> MlResult -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> MlResult -> MlResult -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> MlResult
-> MlResult
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_finalVerify)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
Keccak_256
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let keccak_256D :: CByteString -> BS.ByteString
keccak_256D :: CByteString -> ByteString
keccak_256D (CByteString ByteString
x) = ByteString -> ByteString
Hash.keccak_256 ByteString
x
{-# INLINE keccak_256D #-}
in (CByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> ByteString)
-> (cost
-> FoldArgs (GetArgs (CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> ByteString
keccak_256D
(CostingFun ModelOneArgument -> CByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramKeccak_256)
| Bool
otherwise =
let keccak_256D :: BS.ByteString -> BS.ByteString
keccak_256D :: ByteString -> ByteString
keccak_256D = ByteString -> ByteString
Hash.keccak_256
{-# INLINE keccak_256D #-}
in (ByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString)
-> (cost
-> FoldArgs (GetArgs (ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString
keccak_256D
(CostingFun ModelOneArgument -> ByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramKeccak_256)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
Blake2b_224
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let blake2b_224D :: CByteString -> BS.ByteString
blake2b_224D :: CByteString -> ByteString
blake2b_224D (CByteString ByteString
x) = ByteString -> ByteString
Hash.blake2b_224 ByteString
x
{-# INLINE blake2b_224D #-}
in (CByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> ByteString)
-> (cost
-> FoldArgs (GetArgs (CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> ByteString
blake2b_224D
(CostingFun ModelOneArgument -> CByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramBlake2b_224)
| Bool
otherwise =
let blake2b_224D :: BS.ByteString -> BS.ByteString
blake2b_224D :: ByteString -> ByteString
blake2b_224D = ByteString -> ByteString
Hash.blake2b_224
{-# INLINE blake2b_224D #-}
in (ByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString)
-> (cost
-> FoldArgs (GetArgs (ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString
blake2b_224D
(CostingFun ModelOneArgument -> ByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramBlake2b_224)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
IntegerToByteString =
let integerToByteStringDenotation
:: Bool -> NumBytesCostedAsNumWords -> Integer -> BuiltinResult BS.ByteString
integerToByteStringDenotation :: Bool
-> NumBytesCostedAsNumWords -> Integer -> BuiltinResult ByteString
integerToByteStringDenotation Bool
b (NumBytesCostedAsNumWords Integer
w) = Bool -> Integer -> Integer -> BuiltinResult ByteString
Bitwise.integerToByteString Bool
b Integer
w
{-# INLINE integerToByteStringDenotation #-}
in (Bool
-> NumBytesCostedAsNumWords -> Integer -> BuiltinResult ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(Bool
-> NumBytesCostedAsNumWords
-> Integer
-> BuiltinResult ByteString))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Bool
-> NumBytesCostedAsNumWords -> Integer -> BuiltinResult ByteString)
-> (cost
-> FoldArgs
(GetArgs
(Bool
-> NumBytesCostedAsNumWords
-> Integer
-> BuiltinResult ByteString))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Bool
-> NumBytesCostedAsNumWords -> Integer -> BuiltinResult ByteString
integerToByteStringDenotation
(CostingFun ModelThreeArguments
-> Bool -> NumBytesCostedAsNumWords -> Integer -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> Bool -> NumBytesCostedAsNumWords -> Integer -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> Bool
-> NumBytesCostedAsNumWords
-> Integer
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramIntegerToByteString)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
ByteStringToInteger
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let byteStringToIntegerD :: Bool -> CByteString -> Integer
byteStringToIntegerD :: Bool -> CByteString -> Integer
byteStringToIntegerD Bool
b (CByteString ByteString
s) = Bool -> ByteString -> Integer
Bitwise.byteStringToInteger Bool
b ByteString
s
{-# INLINE byteStringToIntegerD #-}
in (Bool -> CByteString -> Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Bool -> CByteString -> Integer)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Bool -> CByteString -> Integer)
-> (cost
-> FoldArgs
(GetArgs (Bool -> CByteString -> Integer)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Bool -> CByteString -> Integer
byteStringToIntegerD
(CostingFun ModelTwoArguments
-> Bool -> CByteString -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Bool -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Bool
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramByteStringToInteger)
| Bool
otherwise =
let byteStringToIntegerD :: Bool -> BS.ByteString -> Integer
byteStringToIntegerD :: Bool -> ByteString -> Integer
byteStringToIntegerD = Bool -> ByteString -> Integer
Bitwise.byteStringToInteger
{-# INLINE byteStringToIntegerD #-}
in (Bool -> ByteString -> Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Bool -> ByteString -> Integer)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Bool -> ByteString -> Integer)
-> (cost
-> FoldArgs
(GetArgs (Bool -> ByteString -> Integer)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Bool -> ByteString -> Integer
byteStringToIntegerD
(CostingFun ModelTwoArguments
-> Bool -> ByteString -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Bool -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Bool
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramByteStringToInteger)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
AndByteString
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let andByteStringD :: Bool -> CByteString -> CByteString -> BS.ByteString
andByteStringD :: Bool -> CByteString -> CByteString -> ByteString
andByteStringD Bool
b (CByteString ByteString
xs) (CByteString ByteString
ys) =
Bool -> ByteString -> ByteString -> ByteString
Bitwise.andByteString Bool
b ByteString
xs ByteString
ys
{-# INLINE andByteStringD #-}
in (Bool -> CByteString -> CByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Bool -> CByteString -> CByteString -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Bool -> CByteString -> CByteString -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (Bool -> CByteString -> CByteString -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Bool -> CByteString -> CByteString -> ByteString
andByteStringD
(CostingFun ModelThreeArguments
-> Bool -> CByteString -> CByteString -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> Bool -> CByteString -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> Bool
-> CByteString
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramAndByteString)
| Bool
otherwise =
let andByteStringD :: Bool -> BS.ByteString -> BS.ByteString -> BS.ByteString
andByteStringD :: Bool -> ByteString -> ByteString -> ByteString
andByteStringD = Bool -> ByteString -> ByteString -> ByteString
Bitwise.andByteString
{-# INLINE andByteStringD #-}
in (Bool -> ByteString -> ByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Bool -> ByteString -> ByteString -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Bool -> ByteString -> ByteString -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (Bool -> ByteString -> ByteString -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Bool -> ByteString -> ByteString -> ByteString
andByteStringD
(CostingFun ModelThreeArguments
-> Bool -> ByteString -> ByteString -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> Bool -> ByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> Bool
-> ByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramAndByteString)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
OrByteString
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let orByteStringD :: Bool -> CByteString -> CByteString -> BS.ByteString
orByteStringD :: Bool -> CByteString -> CByteString -> ByteString
orByteStringD Bool
b (CByteString ByteString
xs) (CByteString ByteString
ys) =
Bool -> ByteString -> ByteString -> ByteString
Bitwise.orByteString Bool
b ByteString
xs ByteString
ys
{-# INLINE orByteStringD #-}
in (Bool -> CByteString -> CByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Bool -> CByteString -> CByteString -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Bool -> CByteString -> CByteString -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (Bool -> CByteString -> CByteString -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Bool -> CByteString -> CByteString -> ByteString
orByteStringD
(CostingFun ModelThreeArguments
-> Bool -> CByteString -> CByteString -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> Bool -> CByteString -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> Bool
-> CByteString
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramOrByteString)
| Bool
otherwise =
let orByteStringD :: Bool -> BS.ByteString -> BS.ByteString -> BS.ByteString
orByteStringD :: Bool -> ByteString -> ByteString -> ByteString
orByteStringD = Bool -> ByteString -> ByteString -> ByteString
Bitwise.orByteString
{-# INLINE orByteStringD #-}
in (Bool -> ByteString -> ByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Bool -> ByteString -> ByteString -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Bool -> ByteString -> ByteString -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (Bool -> ByteString -> ByteString -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Bool -> ByteString -> ByteString -> ByteString
orByteStringD
(CostingFun ModelThreeArguments
-> Bool -> ByteString -> ByteString -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> Bool -> ByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> Bool
-> ByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramOrByteString)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
XorByteString
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let xorByteStringD :: Bool -> CByteString -> CByteString -> BS.ByteString
xorByteStringD :: Bool -> CByteString -> CByteString -> ByteString
xorByteStringD Bool
b (CByteString ByteString
xs) (CByteString ByteString
ys) =
Bool -> ByteString -> ByteString -> ByteString
Bitwise.xorByteString Bool
b ByteString
xs ByteString
ys
{-# INLINE xorByteStringD #-}
in (Bool -> CByteString -> CByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Bool -> CByteString -> CByteString -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Bool -> CByteString -> CByteString -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (Bool -> CByteString -> CByteString -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Bool -> CByteString -> CByteString -> ByteString
xorByteStringD
(CostingFun ModelThreeArguments
-> Bool -> CByteString -> CByteString -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> Bool -> CByteString -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> Bool
-> CByteString
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramXorByteString)
| Bool
otherwise =
let xorByteStringD :: Bool -> BS.ByteString -> BS.ByteString -> BS.ByteString
xorByteStringD :: Bool -> ByteString -> ByteString -> ByteString
xorByteStringD = Bool -> ByteString -> ByteString -> ByteString
Bitwise.xorByteString
{-# INLINE xorByteStringD #-}
in (Bool -> ByteString -> ByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Bool -> ByteString -> ByteString -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Bool -> ByteString -> ByteString -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (Bool -> ByteString -> ByteString -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Bool -> ByteString -> ByteString -> ByteString
xorByteStringD
(CostingFun ModelThreeArguments
-> Bool -> ByteString -> ByteString -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> Bool -> ByteString -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> Bool
-> ByteString
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramXorByteString)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
ComplementByteString
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let complementByteStringD :: CByteString -> BS.ByteString
complementByteStringD :: CByteString -> ByteString
complementByteStringD (CByteString ByteString
xs) = ByteString -> ByteString
Bitwise.complementByteString ByteString
xs
{-# INLINE complementByteStringD #-}
in (CByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> ByteString)
-> (cost
-> FoldArgs (GetArgs (CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> ByteString
complementByteStringD
(CostingFun ModelOneArgument -> CByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramComplementByteString)
| Bool
otherwise =
let complementByteStringD :: BS.ByteString -> BS.ByteString
complementByteStringD :: ByteString -> ByteString
complementByteStringD = ByteString -> ByteString
Bitwise.complementByteString
{-# INLINE complementByteStringD #-}
in (ByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString)
-> (cost
-> FoldArgs (GetArgs (ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString
complementByteStringD
(CostingFun ModelOneArgument -> ByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramComplementByteString)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
ReadBit
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let readBitD :: CByteString -> Int -> BuiltinResult Bool
readBitD :: CByteString -> Int -> BuiltinResult Bool
readBitD (CByteString ByteString
xs) = ByteString -> Int -> BuiltinResult Bool
Bitwise.readBit ByteString
xs
{-# INLINE readBitD #-}
in (CByteString -> Int -> BuiltinResult Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (CByteString -> Int -> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> Int -> BuiltinResult Bool)
-> (cost
-> FoldArgs
(GetArgs (CByteString -> Int -> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> Int -> BuiltinResult Bool
readBitD
(CostingFun ModelTwoArguments
-> CByteString -> Int -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> CByteString -> Int -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> CByteString
-> Int
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramReadBit)
| Bool
otherwise =
let readBitD :: BS.ByteString -> Int -> BuiltinResult Bool
readBitD :: ByteString -> Int -> BuiltinResult Bool
readBitD = ByteString -> Int -> BuiltinResult Bool
Bitwise.readBit
{-# INLINE readBitD #-}
in (ByteString -> Int -> BuiltinResult Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> Int -> BuiltinResult Bool)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> Int -> BuiltinResult Bool)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> Int -> BuiltinResult Bool)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> Int -> BuiltinResult Bool
readBitD
(CostingFun ModelTwoArguments -> ByteString -> Int -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ByteString -> Int -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ByteString
-> Int
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramReadBit)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
WriteBits
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let writeBitsD
:: BS.ByteString
-> [Integer]
-> Bool
-> BuiltinResult BS.ByteString
writeBitsD :: ByteString -> [Integer] -> Bool -> BuiltinResult ByteString
writeBitsD ByteString
b [Integer]
xs Bool
bit
| ByteString -> Int
BS.length ByteString
b Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
> Integer -> Int
forall a. Num a => Integer -> a
fromInteger Integer
Bitwise.maximumInputLength = do
Text -> BuiltinResult ()
emit (Text -> BuiltinResult ())
-> (String -> Text) -> String -> BuiltinResult ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Text
Text.pack (String -> BuiltinResult ()) -> String -> BuiltinResult ()
forall a b. (a -> b) -> a -> b
$
String
"writeBits: input too long (maximum is "
String -> ShowS
forall a. [a] -> [a] -> [a]
++ Integer -> String
forall a. Show a => a -> String
show Integer
Bitwise.maximumInputLength
String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
" bytes)"
Text -> BuiltinResult ()
emit (Text -> BuiltinResult ()) -> Text -> BuiltinResult ()
forall a b. (a -> b) -> a -> b
$ Text
"Length: " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> (String -> Text
Text.pack (String -> Text) -> (Int -> String) -> Int -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> String
forall a. Show a => a -> String
show (Int -> Text) -> Int -> Text
forall a b. (a -> b) -> a -> b
$ ByteString -> Int
BS.length ByteString
b)
BuiltinResult ByteString
forall a. BuiltinResult a
builtinResultFailure
| Bool
otherwise = ByteString -> [Integer] -> Bool -> BuiltinResult ByteString
Bitwise.writeBits ByteString
b [Integer]
xs Bool
bit
{-# INLINE writeBitsD #-}
in (ByteString -> [Integer] -> Bool -> BuiltinResult ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(ByteString -> [Integer] -> Bool -> BuiltinResult ByteString))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> [Integer] -> Bool -> BuiltinResult ByteString)
-> (cost
-> FoldArgs
(GetArgs
(ByteString -> [Integer] -> Bool -> BuiltinResult ByteString))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> [Integer] -> Bool -> BuiltinResult ByteString
writeBitsD
(CostingFun ModelThreeArguments
-> ByteString -> [Integer] -> Bool -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> ByteString -> [Integer] -> Bool -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> ByteString
-> [Integer]
-> Bool
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramWriteBits)
| Bool
otherwise =
let writeBitsD
:: BS.ByteString
-> [Integer]
-> Bool
-> BuiltinResult BS.ByteString
writeBitsD :: ByteString -> [Integer] -> Bool -> BuiltinResult ByteString
writeBitsD = ByteString -> [Integer] -> Bool -> BuiltinResult ByteString
Bitwise.writeBits
{-# INLINE writeBitsD #-}
in (ByteString -> [Integer] -> Bool -> BuiltinResult ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(ByteString -> [Integer] -> Bool -> BuiltinResult ByteString))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> [Integer] -> Bool -> BuiltinResult ByteString)
-> (cost
-> FoldArgs
(GetArgs
(ByteString -> [Integer] -> Bool -> BuiltinResult ByteString))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> [Integer] -> Bool -> BuiltinResult ByteString
writeBitsD
(CostingFun ModelThreeArguments
-> ByteString -> [Integer] -> Bool -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> ByteString -> [Integer] -> Bool -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> ByteString
-> [Integer]
-> Bool
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramWriteBits)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
ReplicateByte =
let replicateByteD :: NumBytesCostedAsNumWords -> Word8 -> BuiltinResult BS.ByteString
replicateByteD :: NumBytesCostedAsNumWords -> Word8 -> BuiltinResult ByteString
replicateByteD (NumBytesCostedAsNumWords Integer
n) = Integer -> Word8 -> BuiltinResult ByteString
Bitwise.replicateByte Integer
n
{-# INLINE replicateByteD #-}
in (NumBytesCostedAsNumWords -> Word8 -> BuiltinResult ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(NumBytesCostedAsNumWords -> Word8 -> BuiltinResult ByteString))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(NumBytesCostedAsNumWords -> Word8 -> BuiltinResult ByteString)
-> (cost
-> FoldArgs
(GetArgs
(NumBytesCostedAsNumWords -> Word8 -> BuiltinResult ByteString))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
NumBytesCostedAsNumWords -> Word8 -> BuiltinResult ByteString
replicateByteD
(CostingFun ModelTwoArguments
-> NumBytesCostedAsNumWords -> Word8 -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> NumBytesCostedAsNumWords -> Word8 -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> NumBytesCostedAsNumWords
-> Word8
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramReplicateByte)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
ShiftByteString
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let shiftByteStringD :: BS.ByteString -> Int -> BS.ByteString
shiftByteStringD :: ByteString -> Int -> ByteString
shiftByteStringD ByteString
s Int
n = ByteString -> Integer -> ByteString
Bitwise.shiftByteString ByteString
s (Int -> Integer
forall a. Integral a => a -> Integer
toInteger Int
n)
{-# INLINE shiftByteStringD #-}
in (ByteString -> Int -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> Int -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> Int -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> Int -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> Int -> ByteString
shiftByteStringD
(CostingFun ModelTwoArguments -> ByteString -> Int -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ByteString -> Int -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ByteString
-> Int
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramShiftByteString)
| Bool
otherwise =
let shiftByteStringD :: BS.ByteString -> IntegerCostedLiterally -> BS.ByteString
shiftByteStringD :: ByteString -> IntegerCostedLiterally -> ByteString
shiftByteStringD ByteString
s (IntegerCostedLiterally Integer
n) = ByteString -> Integer -> ByteString
Bitwise.shiftByteString ByteString
s Integer
n
{-# INLINE shiftByteStringD #-}
in (ByteString -> IntegerCostedLiterally -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> IntegerCostedLiterally -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> IntegerCostedLiterally -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> IntegerCostedLiterally -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> IntegerCostedLiterally -> ByteString
shiftByteStringD
(CostingFun ModelTwoArguments
-> ByteString -> IntegerCostedLiterally -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ByteString -> IntegerCostedLiterally -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ByteString
-> IntegerCostedLiterally
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramShiftByteString)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
RotateByteString
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let rotateByteStringD :: BS.ByteString -> Int -> BS.ByteString
rotateByteStringD :: ByteString -> Int -> ByteString
rotateByteStringD ByteString
s Int
n = ByteString -> Integer -> ByteString
Bitwise.rotateByteString ByteString
s (Int -> Integer
forall a. Integral a => a -> Integer
toInteger Int
n)
{-# INLINE rotateByteStringD #-}
in (ByteString -> Int -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> Int -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> Int -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> Int -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> Int -> ByteString
rotateByteStringD
(CostingFun ModelTwoArguments -> ByteString -> Int -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ByteString -> Int -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ByteString
-> Int
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramRotateByteString)
| Bool
otherwise =
let rotateByteStringD :: BS.ByteString -> IntegerCostedLiterally -> BS.ByteString
rotateByteStringD :: ByteString -> IntegerCostedLiterally -> ByteString
rotateByteStringD ByteString
s (IntegerCostedLiterally Integer
n) = ByteString -> Integer -> ByteString
Bitwise.rotateByteString ByteString
s Integer
n
{-# INLINE rotateByteStringD #-}
in (ByteString -> IntegerCostedLiterally -> ByteString)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> IntegerCostedLiterally -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> IntegerCostedLiterally -> ByteString)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> IntegerCostedLiterally -> ByteString))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> IntegerCostedLiterally -> ByteString
rotateByteStringD
(CostingFun ModelTwoArguments
-> ByteString -> IntegerCostedLiterally -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ByteString -> IntegerCostedLiterally -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ByteString
-> IntegerCostedLiterally
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramRotateByteString)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
CountSetBits
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let countSetBitsD :: CByteString -> Int
countSetBitsD :: CByteString -> Int
countSetBitsD (CByteString ByteString
xs) = ByteString -> Int
Bitwise.countSetBits ByteString
xs
{-# INLINE countSetBitsD #-}
in (CByteString -> Int)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (CByteString -> Int)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> Int)
-> (cost -> FoldArgs (GetArgs (CByteString -> Int)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> Int
countSetBitsD
(CostingFun ModelOneArgument -> CByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramCountSetBits)
| Bool
otherwise =
let countSetBitsD :: BS.ByteString -> Int
countSetBitsD :: ByteString -> Int
countSetBitsD = ByteString -> Int
Bitwise.countSetBits
{-# INLINE countSetBitsD #-}
in (ByteString -> Int)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (ByteString -> Int)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> Int)
-> (cost -> FoldArgs (GetArgs (ByteString -> Int)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> Int
countSetBitsD
(CostingFun ModelOneArgument -> ByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramCountSetBits)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
FindFirstSetBit
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let findFirstSetBitD :: CByteString -> Int
findFirstSetBitD :: CByteString -> Int
findFirstSetBitD (CByteString ByteString
xs) = ByteString -> Int
Bitwise.findFirstSetBit ByteString
xs
{-# INLINE findFirstSetBitD #-}
in (CByteString -> Int)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (CByteString -> Int)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> Int)
-> (cost -> FoldArgs (GetArgs (CByteString -> Int)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> Int
findFirstSetBitD
(CostingFun ModelOneArgument -> CByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramFindFirstSetBit)
| Bool
otherwise =
let findFirstSetBitD :: BS.ByteString -> Int
findFirstSetBitD :: ByteString -> Int
findFirstSetBitD = ByteString -> Int
Bitwise.findFirstSetBit
{-# INLINE findFirstSetBitD #-}
in (ByteString -> Int)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (ByteString -> Int)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> Int)
-> (cost -> FoldArgs (GetArgs (ByteString -> Int)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> Int
findFirstSetBitD
(CostingFun ModelOneArgument -> ByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramFindFirstSetBit)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
semvar DefaultFun
Ripemd_160
| BuiltinSemanticsVariant DefaultFun -> Bool
ensurable BuiltinSemanticsVariant DefaultFun
semvar =
let ripemd_160D :: CByteString -> BS.ByteString
ripemd_160D :: CByteString -> ByteString
ripemd_160D (CByteString ByteString
xs) = ByteString -> ByteString
Hash.ripemd_160 ByteString
xs
{-# INLINE ripemd_160D #-}
in (CByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(CByteString -> ByteString)
-> (cost
-> FoldArgs (GetArgs (CByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
CByteString -> ByteString
ripemd_160D
(CostingFun ModelOneArgument -> CByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> CByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> CByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramRipemd_160)
| Bool
otherwise =
let ripemd_160D :: BS.ByteString -> BS.ByteString
ripemd_160D :: ByteString -> ByteString
ripemd_160D = ByteString -> ByteString
Hash.ripemd_160
{-# INLINE ripemd_160D #-}
in (ByteString -> ByteString)
-> (BuiltinCostModel
-> FoldArgs (GetArgs (ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString)
-> (cost
-> FoldArgs (GetArgs (ByteString -> ByteString)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString
ripemd_160D
(CostingFun ModelOneArgument -> ByteString -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ByteString -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ByteString
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramRipemd_160)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
ExpModInteger =
let expModIntegerDenotation
:: Integer
-> Integer
-> Integer
-> BuiltinResult Natural
expModIntegerDenotation :: Integer -> Integer -> Integer -> BuiltinResult Natural
expModIntegerDenotation Integer
a Integer
b Integer
m =
if Integer
m Integer -> Integer -> Bool
forall a. Ord a => a -> a -> Bool
< Integer
0
then String -> BuiltinResult Natural
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"expModInteger: negative modulus"
else Integer -> Integer -> Natural -> BuiltinResult Natural
ExpMod.expMod Integer
a Integer
b (Integer -> Natural
naturalFromInteger Integer
m)
{-# INLINE expModIntegerDenotation #-}
in (Integer -> Integer -> Integer -> BuiltinResult Natural)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> Integer -> Integer -> BuiltinResult Natural))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> Integer -> Integer -> BuiltinResult Natural)
-> (cost
-> FoldArgs
(GetArgs (Integer -> Integer -> Integer -> BuiltinResult Natural))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> Integer -> Integer -> BuiltinResult Natural
expModIntegerDenotation
(CostingFun ModelThreeArguments
-> Integer -> Integer -> Integer -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> Integer -> Integer -> Integer -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> Integer
-> Integer
-> Integer
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramExpModInteger)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
DropList =
let dropListDenotation
:: IntegerCostedLiterally -> SomeConstant uni [a] -> BuiltinResult (Opaque val [a])
dropListDenotation :: forall a.
IntegerCostedLiterally
-> SomeConstant uni [a] -> BuiltinResult (Opaque val [a])
dropListDenotation IntegerCostedLiterally
i (SomeConstant (Some (ValueOf uni (Esc a)
uniListA a
xs))) = do
case uni (Esc a)
uniListA of
DefaultUniList DefaultUni (Esc a1)
_ ->
UniOf (Opaque val [a]) (Esc [a1]) -> [a1] -> Opaque val [a]
forall a term. HasConstant term => UniOf term (Esc a) -> a -> term
fromValueOf uni (Esc a)
UniOf (Opaque val [a]) (Esc [a1])
uniListA ([a1] -> Opaque val [a])
-> BuiltinResult [a1] -> BuiltinResult (Opaque val [a])
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> case IntegerCostedLiterally -> Integer
unIntegerCostedLiterally IntegerCostedLiterally
i of
IS Int#
i# -> [a1] -> BuiltinResult [a1]
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ([a1] -> BuiltinResult [a1]) -> [a1] -> BuiltinResult [a1]
forall a b. (a -> b) -> a -> b
$ Int -> [a1] -> [a1]
forall a. Int -> [a] -> [a]
drop (Int# -> Int
I# Int#
i#) a
[a1]
xs
IN ByteArray#
_ -> [a1] -> BuiltinResult [a1]
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure a
[a1]
xs
IP ByteArray#
_ -> case Int -> [a1] -> [a1]
forall a. Int -> [a] -> [a]
drop Int
forall a. Bounded a => a
maxBound a
[a1]
xs of
[] -> [a1] -> BuiltinResult [a1]
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure []
[a1]
_ ->
BuiltinError -> BuiltinResult [a1]
forall a. BuiltinError -> BuiltinResult a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (BuiltinError -> BuiltinResult [a1])
-> BuiltinError -> BuiltinResult [a1]
forall a b. (a -> b) -> a -> b
$
Text -> BuiltinError
structuralUnliftingError
Text
"Panic: unreachable clause executed"
uni (Esc a)
_ -> BuiltinError -> BuiltinResult (Opaque val [a])
forall a. BuiltinError -> BuiltinResult a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (BuiltinError -> BuiltinResult (Opaque val [a]))
-> BuiltinError -> BuiltinResult (Opaque val [a])
forall a b. (a -> b) -> a -> b
$ Text -> BuiltinError
structuralUnliftingError Text
"Expected a list but got something else"
{-# INLINE dropListDenotation #-}
in (IntegerCostedLiterally
-> SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)]))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(IntegerCostedLiterally
-> SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)])))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(IntegerCostedLiterally
-> SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)]))
-> (cost
-> FoldArgs
(GetArgs
(IntegerCostedLiterally
-> SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)])))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
IntegerCostedLiterally
-> SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult (Opaque val [TyVarRep ('TyNameRep "a" 0)])
forall a.
IntegerCostedLiterally
-> SomeConstant uni [a] -> BuiltinResult (Opaque val [a])
dropListDenotation
(CostingFun ModelTwoArguments
-> IntegerCostedLiterally
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> IntegerCostedLiterally
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> IntegerCostedLiterally
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramDropList)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
LengthOfArray =
let lengthOfArrayDenotation :: SomeConstant uni (Vector a) -> BuiltinResult Int
lengthOfArrayDenotation :: forall a. SomeConstant uni (Vector a) -> BuiltinResult Int
lengthOfArrayDenotation (SomeConstant (Some (ValueOf uni (Esc a)
uni a
vec))) =
case uni (Esc a)
uni of
DefaultUniArray DefaultUni (Esc a1)
_uniA -> Int -> BuiltinResult Int
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Int -> BuiltinResult Int) -> Int -> BuiltinResult Int
forall a b. (a -> b) -> a -> b
$ Vector a1 -> Int
forall a. Vector a -> Int
Vector.length a
Vector a1
vec
uni (Esc a)
_ -> BuiltinError -> BuiltinResult Int
forall a. BuiltinError -> BuiltinResult a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (BuiltinError -> BuiltinResult Int)
-> BuiltinError -> BuiltinResult Int
forall a b. (a -> b) -> a -> b
$ Text -> BuiltinError
structuralUnliftingError Text
"Expected an array but got something else"
{-# INLINE lengthOfArrayDenotation #-}
in (SomeConstant uni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> BuiltinResult Int)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(SomeConstant uni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> BuiltinResult Int))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(SomeConstant uni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> BuiltinResult Int)
-> (cost
-> FoldArgs
(GetArgs
(SomeConstant uni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> BuiltinResult Int))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning SomeConstant uni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> BuiltinResult Int
forall a. SomeConstant uni (Vector a) -> BuiltinResult Int
lengthOfArrayDenotation (CostingFun ModelOneArgument
-> SomeConstant DefaultUni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument
-> SomeConstant DefaultUni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> SomeConstant DefaultUni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramLengthOfArray)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
ListToArray =
let listToArrayDenotation :: SomeConstant uni [a] -> BuiltinResult (Opaque val (Vector a))
listToArrayDenotation :: forall a.
SomeConstant uni [a] -> BuiltinResult (Opaque val (Vector a))
listToArrayDenotation (SomeConstant (Some (ValueOf uni (Esc a)
uniListA a
xs))) =
case uni (Esc a)
uniListA of
DefaultUniList DefaultUni (Esc a1)
uniA ->
Opaque val (Vector a) -> BuiltinResult (Opaque val (Vector a))
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Opaque val (Vector a) -> BuiltinResult (Opaque val (Vector a)))
-> Opaque val (Vector a) -> BuiltinResult (Opaque val (Vector a))
forall a b. (a -> b) -> a -> b
$ UniOf (Opaque val (Vector a)) (Esc (Vector a1))
-> Vector a1 -> Opaque val (Vector a)
forall a term. HasConstant term => UniOf term (Esc a) -> a -> term
fromValueOf (DefaultUni (Esc a1) -> DefaultUni (Esc (Vector a1))
forall {a} {k1} {k2} {f :: k1 -> k2} {a1 :: k1}.
(a ~ Esc (f a1), Esc f ~ Esc Vector) =>
DefaultUni (Esc a1) -> DefaultUni a
DefaultUniArray DefaultUni (Esc a1)
uniA) (Vector a1 -> Opaque val (Vector a))
-> Vector a1 -> Opaque val (Vector a)
forall a b. (a -> b) -> a -> b
$ Int -> [a1] -> Vector a1
forall a. Int -> [a] -> Vector a
Vector.fromListN ([a1] -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length a
[a1]
xs) a
[a1]
xs
uni (Esc a)
_ -> BuiltinError -> BuiltinResult (Opaque val (Vector a))
forall a. BuiltinError -> BuiltinResult a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (BuiltinError -> BuiltinResult (Opaque val (Vector a)))
-> BuiltinError -> BuiltinResult (Opaque val (Vector a))
forall a b. (a -> b) -> a -> b
$ Text -> BuiltinError
structuralUnliftingError Text
"Expected a list but got something else"
{-# INLINE listToArrayDenotation #-}
in (SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult
(Opaque val (Vector (TyVarRep ('TyNameRep "a" 0)))))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult
(Opaque val (Vector (TyVarRep ('TyNameRep "a" 0))))))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult
(Opaque val (Vector (TyVarRep ('TyNameRep "a" 0)))))
-> (cost
-> FoldArgs
(GetArgs
(SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult
(Opaque val (Vector (TyVarRep ('TyNameRep "a" 0))))))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning SomeConstant uni [TyVarRep ('TyNameRep "a" 0)]
-> BuiltinResult
(Opaque val (Vector (TyVarRep ('TyNameRep "a" 0))))
forall a.
SomeConstant uni [a] -> BuiltinResult (Opaque val (Vector a))
listToArrayDenotation (CostingFun ModelOneArgument
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> SomeConstant DefaultUni [TyVarRep ('TyNameRep "a" 0)]
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramListToArray)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
IndexArray =
let indexArrayDenotation :: SomeConstant uni (Vector a) -> Int -> BuiltinResult (Opaque val a)
indexArrayDenotation :: forall a.
SomeConstant uni (Vector a) -> Int -> BuiltinResult (Opaque val a)
indexArrayDenotation (SomeConstant (Some (ValueOf uni (Esc a)
uni a
vec))) Int
n =
case uni (Esc a)
uni of
DefaultUniArray DefaultUni (Esc a1)
arg -> do
case a
Vector a1
vec Vector a1 -> Int -> Maybe a1
forall a. Vector a -> Int -> Maybe a
Vector.!? Int
n of
Maybe a1
Nothing -> String -> BuiltinResult (Opaque val a)
forall a. String -> BuiltinResult a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Array index out of bounds"
Just a1
el -> Opaque val a -> BuiltinResult (Opaque val a)
forall a. a -> BuiltinResult a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Opaque val a -> BuiltinResult (Opaque val a))
-> Opaque val a -> BuiltinResult (Opaque val a)
forall a b. (a -> b) -> a -> b
$ UniOf (Opaque val a) (Esc a1) -> a1 -> Opaque val a
forall a term. HasConstant term => UniOf term (Esc a) -> a -> term
fromValueOf UniOf (Opaque val a) (Esc a1)
DefaultUni (Esc a1)
arg a1
el
uni (Esc a)
_ ->
BuiltinError -> BuiltinResult (Opaque val a)
forall a. BuiltinError -> BuiltinResult a
forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError (BuiltinError -> BuiltinResult (Opaque val a))
-> BuiltinError -> BuiltinResult (Opaque val a)
forall a b. (a -> b) -> a -> b
$ Text -> BuiltinError
structuralUnliftingError Text
"Expected an array but got something else"
{-# INLINE indexArrayDenotation #-}
in (SomeConstant uni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> Int -> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0))))
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(SomeConstant uni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> Int
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0)))))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(SomeConstant uni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> Int -> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0))))
-> (cost
-> FoldArgs
(GetArgs
(SomeConstant uni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> Int
-> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0)))))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning SomeConstant uni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> Int -> BuiltinResult (Opaque val (TyVarRep ('TyNameRep "a" 0)))
forall a.
SomeConstant uni (Vector a) -> Int -> BuiltinResult (Opaque val a)
indexArrayDenotation (CostingFun ModelTwoArguments
-> SomeConstant DefaultUni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> Int
-> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> SomeConstant DefaultUni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> Int
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> SomeConstant DefaultUni (Vector (TyVarRep ('TyNameRep "a" 0)))
-> Int
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramIndexArray)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_G1_multiScalarMul =
let bls12_381_G1_multiScalarMulDenotation
:: [Integer] -> [BLS12_381.G1.Element] -> BuiltinResult BLS12_381.G1.Element
bls12_381_G1_multiScalarMulDenotation :: [Integer] -> [Element] -> BuiltinResult Element
bls12_381_G1_multiScalarMulDenotation = [Integer] -> [Element] -> BuiltinResult Element
BLS12_381.G1.multiScalarMul
{-# INLINE bls12_381_G1_multiScalarMulDenotation #-}
in ([Integer] -> [Element] -> BuiltinResult Element)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs ([Integer] -> [Element] -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
([Integer] -> [Element] -> BuiltinResult Element)
-> (cost
-> FoldArgs
(GetArgs ([Integer] -> [Element] -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
[Integer] -> [Element] -> BuiltinResult Element
bls12_381_G1_multiScalarMulDenotation
(CostingFun ModelTwoArguments
-> [Integer] -> [Element] -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> [Integer] -> [Element] -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> [Integer]
-> [Element]
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_G1_multiScalarMul)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
Bls12_381_G2_multiScalarMul =
let bls12_381_G2_multiScalarMulDenotation
:: [Integer] -> [BLS12_381.G2.Element] -> BuiltinResult BLS12_381.G2.Element
bls12_381_G2_multiScalarMulDenotation :: [Integer] -> [Element] -> BuiltinResult Element
bls12_381_G2_multiScalarMulDenotation = [Integer] -> [Element] -> BuiltinResult Element
BLS12_381.G2.multiScalarMul
{-# INLINE bls12_381_G2_multiScalarMulDenotation #-}
in ([Integer] -> [Element] -> BuiltinResult Element)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs ([Integer] -> [Element] -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
([Integer] -> [Element] -> BuiltinResult Element)
-> (cost
-> FoldArgs
(GetArgs ([Integer] -> [Element] -> BuiltinResult Element))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
[Integer] -> [Element] -> BuiltinResult Element
bls12_381_G2_multiScalarMulDenotation
(CostingFun ModelTwoArguments
-> [Integer] -> [Element] -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> [Integer] -> [Element] -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> [Integer]
-> [Element]
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramBls12_381_G2_multiScalarMul)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
InsertCoin =
let insertCoinDenotation
:: ByteString
-> ByteString
-> Integer
-> ValueMaxDepth
-> BuiltinResult Value
insertCoinDenotation :: ByteString
-> ByteString -> Integer -> ValueMaxDepth -> BuiltinResult Value
insertCoinDenotation ByteString
pid ByteString
tokn Integer
amt (ValueMaxDepth Value
v) =
ByteString -> ByteString -> Integer -> Value -> BuiltinResult Value
Value.insertCoin ByteString
pid ByteString
tokn Integer
amt Value
v
{-# INLINE insertCoinDenotation #-}
in (ByteString
-> ByteString -> Integer -> ValueMaxDepth -> BuiltinResult Value)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs
(ByteString
-> ByteString -> Integer -> ValueMaxDepth -> BuiltinResult Value))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString
-> ByteString -> Integer -> ValueMaxDepth -> BuiltinResult Value)
-> (cost
-> FoldArgs
(GetArgs
(ByteString
-> ByteString -> Integer -> ValueMaxDepth -> BuiltinResult Value))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString
-> ByteString -> Integer -> ValueMaxDepth -> BuiltinResult Value
insertCoinDenotation
(CostingFun ModelFourArguments
-> ByteString
-> ByteString
-> Integer
-> ValueMaxDepth
-> ExBudgetStream
forall a1 a2 a3 a4.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3,
ExMemoryUsage a4) =>
CostingFun ModelFourArguments
-> a1 -> a2 -> a3 -> a4 -> ExBudgetStream
runCostingFunFourArguments (CostingFun ModelFourArguments
-> ByteString
-> ByteString
-> Integer
-> ValueMaxDepth
-> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelFourArguments)
-> BuiltinCostModel
-> ByteString
-> ByteString
-> Integer
-> ValueMaxDepth
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelFourArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelFourArguments
paramInsertCoin)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
LookupCoin =
let lookupCoinDenotation :: ByteString -> ByteString -> ValueMaxDepth -> Integer
lookupCoinDenotation :: ByteString -> ByteString -> ValueMaxDepth -> Integer
lookupCoinDenotation ByteString
p ByteString
t (ValueMaxDepth Value
v) = ByteString -> ByteString -> Value -> Integer
Value.lookupCoin ByteString
p ByteString
t Value
v
{-# INLINE lookupCoinDenotation #-}
in (ByteString -> ByteString -> ValueMaxDepth -> Integer)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ByteString -> ByteString -> ValueMaxDepth -> Integer))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ByteString -> ByteString -> ValueMaxDepth -> Integer)
-> (cost
-> FoldArgs
(GetArgs (ByteString -> ByteString -> ValueMaxDepth -> Integer))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ByteString -> ByteString -> ValueMaxDepth -> Integer
lookupCoinDenotation
(CostingFun ModelThreeArguments
-> ByteString -> ByteString -> ValueMaxDepth -> ExBudgetStream
forall a1 a2 a3.
(ExMemoryUsage a1, ExMemoryUsage a2, ExMemoryUsage a3) =>
CostingFun ModelThreeArguments -> a1 -> a2 -> a3 -> ExBudgetStream
runCostingFunThreeArguments (CostingFun ModelThreeArguments
-> ByteString -> ByteString -> ValueMaxDepth -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelThreeArguments)
-> BuiltinCostModel
-> ByteString
-> ByteString
-> ValueMaxDepth
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelThreeArguments
forall (f :: * -> *).
BuiltinCostModelBase f -> f ModelThreeArguments
paramLookupCoin)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
UnionValue =
let unionValueDenotation :: ValueTotalSize -> ValueTotalSize -> BuiltinResult Value
unionValueDenotation :: ValueTotalSize -> ValueTotalSize -> BuiltinResult Value
unionValueDenotation (ValueTotalSize Value
v1) (ValueTotalSize Value
v2) = Value -> Value -> BuiltinResult Value
Value.unionValue Value
v1 Value
v2
{-# INLINE unionValueDenotation #-}
in (ValueTotalSize -> ValueTotalSize -> BuiltinResult Value)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ValueTotalSize -> ValueTotalSize -> BuiltinResult Value))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ValueTotalSize -> ValueTotalSize -> BuiltinResult Value)
-> (cost
-> FoldArgs
(GetArgs (ValueTotalSize -> ValueTotalSize -> BuiltinResult Value))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ValueTotalSize -> ValueTotalSize -> BuiltinResult Value
unionValueDenotation
(CostingFun ModelTwoArguments
-> ValueTotalSize -> ValueTotalSize -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ValueTotalSize -> ValueTotalSize -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ValueTotalSize
-> ValueTotalSize
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramUnionValue)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
ValueContains =
let valueContainsDenotation :: ValueTotalSize -> ValueTotalSize -> BuiltinResult Bool
valueContainsDenotation :: ValueTotalSize -> ValueTotalSize -> BuiltinResult Bool
valueContainsDenotation (ValueTotalSize Value
v1) (ValueTotalSize Value
v2) =
Value -> Value -> BuiltinResult Bool
Value.valueContains Value
v1 Value
v2
{-# INLINE valueContainsDenotation #-}
in (ValueTotalSize -> ValueTotalSize -> BuiltinResult Bool)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ValueTotalSize -> ValueTotalSize -> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ValueTotalSize -> ValueTotalSize -> BuiltinResult Bool)
-> (cost
-> FoldArgs
(GetArgs (ValueTotalSize -> ValueTotalSize -> BuiltinResult Bool))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ValueTotalSize -> ValueTotalSize -> BuiltinResult Bool
valueContainsDenotation
(CostingFun ModelTwoArguments
-> ValueTotalSize -> ValueTotalSize -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> ValueTotalSize -> ValueTotalSize -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> ValueTotalSize
-> ValueTotalSize
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramValueContains)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
ValueData =
let valueDataDenotation :: ValueTotalSize -> BuiltinResult Data
valueDataDenotation :: ValueTotalSize -> BuiltinResult Data
valueDataDenotation (ValueTotalSize Value
v) = Value -> BuiltinResult Data
Value.valueData Value
v
{-# INLINE valueDataDenotation #-}
in (ValueTotalSize -> BuiltinResult Data)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (ValueTotalSize -> BuiltinResult Data)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(ValueTotalSize -> BuiltinResult Data)
-> (cost
-> FoldArgs
(GetArgs (ValueTotalSize -> BuiltinResult Data)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
ValueTotalSize -> BuiltinResult Data
valueDataDenotation
(CostingFun ModelOneArgument -> ValueTotalSize -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> ValueTotalSize -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> ValueTotalSize
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramValueData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
UnValueData =
let unValueDataDenotation :: DataNodeCount -> BuiltinResult Value
unValueDataDenotation :: DataNodeCount -> BuiltinResult Value
unValueDataDenotation (DataNodeCount Data
d) = Data -> BuiltinResult Value
Value.unValueData Data
d
{-# INLINE unValueDataDenotation #-}
in (DataNodeCount -> BuiltinResult Value)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (DataNodeCount -> BuiltinResult Value)) ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(DataNodeCount -> BuiltinResult Value)
-> (cost
-> FoldArgs
(GetArgs (DataNodeCount -> BuiltinResult Value)) ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
DataNodeCount -> BuiltinResult Value
unValueDataDenotation
(CostingFun ModelOneArgument -> DataNodeCount -> ExBudgetStream
forall a1.
ExMemoryUsage a1 =>
CostingFun ModelOneArgument -> a1 -> ExBudgetStream
runCostingFunOneArgument (CostingFun ModelOneArgument -> DataNodeCount -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelOneArgument)
-> BuiltinCostModel
-> DataNodeCount
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelOneArgument
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelOneArgument
paramUnValueData)
toBuiltinMeaning BuiltinSemanticsVariant DefaultFun
_semvar DefaultFun
ScaleValue =
let scaleValueDenotation :: Integer -> ValueTotalSize -> BuiltinResult Value
scaleValueDenotation :: Integer -> ValueTotalSize -> BuiltinResult Value
scaleValueDenotation Integer
scalar (ValueTotalSize Value
v) = Integer -> Value -> BuiltinResult Value
Value.scaleValue Integer
scalar Value
v
{-# INLINE scaleValueDenotation #-}
in (Integer -> ValueTotalSize -> BuiltinResult Value)
-> (BuiltinCostModel
-> FoldArgs
(GetArgs (Integer -> ValueTotalSize -> BuiltinResult Value))
ExBudgetStream)
-> BuiltinMeaning val BuiltinCostModel
forall cost.
(Integer -> ValueTotalSize -> BuiltinResult Value)
-> (cost
-> FoldArgs
(GetArgs (Integer -> ValueTotalSize -> BuiltinResult Value))
ExBudgetStream)
-> BuiltinMeaning val cost
forall a val cost.
MakeBuiltinMeaning a val =>
a
-> (cost -> FoldArgs (GetArgs a) ExBudgetStream)
-> BuiltinMeaning val cost
makeBuiltinMeaning
Integer -> ValueTotalSize -> BuiltinResult Value
scaleValueDenotation
(CostingFun ModelTwoArguments
-> Integer -> ValueTotalSize -> ExBudgetStream
forall a1 a2.
(ExMemoryUsage a1, ExMemoryUsage a2) =>
CostingFun ModelTwoArguments -> a1 -> a2 -> ExBudgetStream
runCostingFunTwoArguments (CostingFun ModelTwoArguments
-> Integer -> ValueTotalSize -> ExBudgetStream)
-> (BuiltinCostModel -> CostingFun ModelTwoArguments)
-> BuiltinCostModel
-> Integer
-> ValueTotalSize
-> ExBudgetStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BuiltinCostModel -> CostingFun ModelTwoArguments
forall (f :: * -> *). BuiltinCostModelBase f -> f ModelTwoArguments
paramScaleValue)
{-# INLINE toBuiltinMeaning #-}
instance Default (BuiltinSemanticsVariant DefaultFun) where
def :: BuiltinSemanticsVariant DefaultFun
def = BuiltinSemanticsVariant DefaultFun
forall a. Bounded a => a
maxBound
instance Pretty (BuiltinSemanticsVariant DefaultFun) where
pretty :: forall ann. BuiltinSemanticsVariant DefaultFun -> Doc ann
pretty = BuiltinSemanticsVariant DefaultFun -> Doc ann
forall a ann. Show a => a -> Doc ann
viaShow
builtinTagWidth :: NumBits
builtinTagWidth :: Int
builtinTagWidth = Int
7
encodeBuiltin :: Word8 -> Flat.Encoding
encodeBuiltin :: Word8 -> Encoding
encodeBuiltin = Int -> Word8 -> Encoding
eBits Int
builtinTagWidth
decodeBuiltin :: Get Word8
decodeBuiltin :: Get Word8
decodeBuiltin = Int -> Get Word8
dBEBits8 Int
builtinTagWidth
instance Flat DefaultFun where
encode :: DefaultFun -> Encoding
encode =
Word8 -> Encoding
encodeBuiltin (Word8 -> Encoding)
-> (DefaultFun -> Word8) -> DefaultFun -> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
DefaultFun
AddInteger -> Word8
0
DefaultFun
SubtractInteger -> Word8
1
DefaultFun
MultiplyInteger -> Word8
2
DefaultFun
DivideInteger -> Word8
3
DefaultFun
QuotientInteger -> Word8
4
DefaultFun
RemainderInteger -> Word8
5
DefaultFun
ModInteger -> Word8
6
DefaultFun
EqualsInteger -> Word8
7
DefaultFun
LessThanInteger -> Word8
8
DefaultFun
LessThanEqualsInteger -> Word8
9
DefaultFun
AppendByteString -> Word8
10
DefaultFun
ConsByteString -> Word8
11
DefaultFun
SliceByteString -> Word8
12
DefaultFun
LengthOfByteString -> Word8
13
DefaultFun
IndexByteString -> Word8
14
DefaultFun
EqualsByteString -> Word8
15
DefaultFun
LessThanByteString -> Word8
16
DefaultFun
LessThanEqualsByteString -> Word8
17
DefaultFun
Sha2_256 -> Word8
18
DefaultFun
Sha3_256 -> Word8
19
DefaultFun
Blake2b_256 -> Word8
20
DefaultFun
VerifyEd25519Signature -> Word8
21
DefaultFun
AppendString -> Word8
22
DefaultFun
EqualsString -> Word8
23
DefaultFun
EncodeUtf8 -> Word8
24
DefaultFun
DecodeUtf8 -> Word8
25
DefaultFun
IfThenElse -> Word8
26
DefaultFun
ChooseUnit -> Word8
27
DefaultFun
Trace -> Word8
28
DefaultFun
FstPair -> Word8
29
DefaultFun
SndPair -> Word8
30
DefaultFun
ChooseList -> Word8
31
DefaultFun
MkCons -> Word8
32
DefaultFun
HeadList -> Word8
33
DefaultFun
TailList -> Word8
34
DefaultFun
NullList -> Word8
35
DefaultFun
ChooseData -> Word8
36
DefaultFun
ConstrData -> Word8
37
DefaultFun
MapData -> Word8
38
DefaultFun
ListData -> Word8
39
DefaultFun
IData -> Word8
40
DefaultFun
BData -> Word8
41
DefaultFun
UnConstrData -> Word8
42
DefaultFun
UnMapData -> Word8
43
DefaultFun
UnListData -> Word8
44
DefaultFun
UnIData -> Word8
45
DefaultFun
UnBData -> Word8
46
DefaultFun
EqualsData -> Word8
47
DefaultFun
MkPairData -> Word8
48
DefaultFun
MkNilData -> Word8
49
DefaultFun
MkNilPairData -> Word8
50
DefaultFun
SerialiseData -> Word8
51
DefaultFun
VerifyEcdsaSecp256k1Signature -> Word8
52
DefaultFun
VerifySchnorrSecp256k1Signature -> Word8
53
DefaultFun
Bls12_381_G1_add -> Word8
54
DefaultFun
Bls12_381_G1_neg -> Word8
55
DefaultFun
Bls12_381_G1_scalarMul -> Word8
56
DefaultFun
Bls12_381_G1_equal -> Word8
57
DefaultFun
Bls12_381_G1_compress -> Word8
58
DefaultFun
Bls12_381_G1_uncompress -> Word8
59
DefaultFun
Bls12_381_G1_hashToGroup -> Word8
60
DefaultFun
Bls12_381_G2_add -> Word8
61
DefaultFun
Bls12_381_G2_neg -> Word8
62
DefaultFun
Bls12_381_G2_scalarMul -> Word8
63
DefaultFun
Bls12_381_G2_equal -> Word8
64
DefaultFun
Bls12_381_G2_compress -> Word8
65
DefaultFun
Bls12_381_G2_uncompress -> Word8
66
DefaultFun
Bls12_381_G2_hashToGroup -> Word8
67
DefaultFun
Bls12_381_millerLoop -> Word8
68
DefaultFun
Bls12_381_mulMlResult -> Word8
69
DefaultFun
Bls12_381_finalVerify -> Word8
70
DefaultFun
Keccak_256 -> Word8
71
DefaultFun
Blake2b_224 -> Word8
72
DefaultFun
IntegerToByteString -> Word8
73
DefaultFun
ByteStringToInteger -> Word8
74
DefaultFun
AndByteString -> Word8
75
DefaultFun
OrByteString -> Word8
76
DefaultFun
XorByteString -> Word8
77
DefaultFun
ComplementByteString -> Word8
78
DefaultFun
ReadBit -> Word8
79
DefaultFun
WriteBits -> Word8
80
DefaultFun
ReplicateByte -> Word8
81
DefaultFun
ShiftByteString -> Word8
82
DefaultFun
RotateByteString -> Word8
83
DefaultFun
CountSetBits -> Word8
84
DefaultFun
FindFirstSetBit -> Word8
85
DefaultFun
Ripemd_160 -> Word8
86
DefaultFun
ExpModInteger -> Word8
87
DefaultFun
DropList -> Word8
88
DefaultFun
LengthOfArray -> Word8
89
DefaultFun
ListToArray -> Word8
90
DefaultFun
IndexArray -> Word8
91
DefaultFun
Bls12_381_G1_multiScalarMul -> Word8
92
DefaultFun
Bls12_381_G2_multiScalarMul -> Word8
93
DefaultFun
InsertCoin -> Word8
94
DefaultFun
LookupCoin -> Word8
95
DefaultFun
UnionValue -> Word8
96
DefaultFun
ValueContains -> Word8
97
DefaultFun
ValueData -> Word8
98
DefaultFun
UnValueData -> Word8
99
DefaultFun
ScaleValue -> Word8
100
decode :: Get DefaultFun
decode = Word8 -> Get DefaultFun
forall {a} {f :: * -> *}.
(Eq a, Num a, MonadFail f, Show a) =>
a -> f DefaultFun
go (Word8 -> Get DefaultFun) -> Get Word8 -> Get DefaultFun
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Get Word8
decodeBuiltin
where
go :: a -> f DefaultFun
go a
0 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
AddInteger
go a
1 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
SubtractInteger
go a
2 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
MultiplyInteger
go a
3 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
DivideInteger
go a
4 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
QuotientInteger
go a
5 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
RemainderInteger
go a
6 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ModInteger
go a
7 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
EqualsInteger
go a
8 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
LessThanInteger
go a
9 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
LessThanEqualsInteger
go a
10 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
AppendByteString
go a
11 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ConsByteString
go a
12 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
SliceByteString
go a
13 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
LengthOfByteString
go a
14 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
IndexByteString
go a
15 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
EqualsByteString
go a
16 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
LessThanByteString
go a
17 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
LessThanEqualsByteString
go a
18 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Sha2_256
go a
19 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Sha3_256
go a
20 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Blake2b_256
go a
21 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
VerifyEd25519Signature
go a
22 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
AppendString
go a
23 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
EqualsString
go a
24 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
EncodeUtf8
go a
25 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
DecodeUtf8
go a
26 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
IfThenElse
go a
27 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ChooseUnit
go a
28 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Trace
go a
29 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
FstPair
go a
30 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
SndPair
go a
31 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ChooseList
go a
32 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
MkCons
go a
33 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
HeadList
go a
34 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
TailList
go a
35 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
NullList
go a
36 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ChooseData
go a
37 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ConstrData
go a
38 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
MapData
go a
39 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ListData
go a
40 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
IData
go a
41 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
BData
go a
42 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
UnConstrData
go a
43 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
UnMapData
go a
44 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
UnListData
go a
45 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
UnIData
go a
46 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
UnBData
go a
47 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
EqualsData
go a
48 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
MkPairData
go a
49 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
MkNilData
go a
50 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
MkNilPairData
go a
51 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
SerialiseData
go a
52 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
VerifyEcdsaSecp256k1Signature
go a
53 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
VerifySchnorrSecp256k1Signature
go a
54 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G1_add
go a
55 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G1_neg
go a
56 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G1_scalarMul
go a
57 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G1_equal
go a
58 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G1_compress
go a
59 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G1_uncompress
go a
60 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G1_hashToGroup
go a
61 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G2_add
go a
62 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G2_neg
go a
63 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G2_scalarMul
go a
64 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G2_equal
go a
65 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G2_compress
go a
66 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G2_uncompress
go a
67 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G2_hashToGroup
go a
68 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_millerLoop
go a
69 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_mulMlResult
go a
70 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_finalVerify
go a
71 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Keccak_256
go a
72 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Blake2b_224
go a
73 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
IntegerToByteString
go a
74 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ByteStringToInteger
go a
75 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
AndByteString
go a
76 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
OrByteString
go a
77 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
XorByteString
go a
78 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ComplementByteString
go a
79 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ReadBit
go a
80 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
WriteBits
go a
81 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ReplicateByte
go a
82 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ShiftByteString
go a
83 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
RotateByteString
go a
84 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
CountSetBits
go a
85 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
FindFirstSetBit
go a
86 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Ripemd_160
go a
87 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ExpModInteger
go a
88 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
DropList
go a
89 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
LengthOfArray
go a
90 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ListToArray
go a
91 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
IndexArray
go a
92 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G1_multiScalarMul
go a
93 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
Bls12_381_G2_multiScalarMul
go a
94 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
InsertCoin
go a
95 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
LookupCoin
go a
96 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
UnionValue
go a
97 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ValueContains
go a
98 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ValueData
go a
99 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
UnValueData
go a
100 = DefaultFun -> f DefaultFun
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DefaultFun
ScaleValue
go a
t = String -> f DefaultFun
forall a. String -> f a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String -> f DefaultFun) -> String -> f DefaultFun
forall a b. (a -> b) -> a -> b
$ String
"Failed to decode builtin tag, got: " String -> ShowS
forall a. [a] -> [a] -> [a]
++ a -> String
forall a. Show a => a -> String
show a
t
size :: DefaultFun -> Int -> Int
size DefaultFun
_ Int
n = Int
n Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
builtinTagWidth
ensurable :: BuiltinSemanticsVariant DefaultFun -> Bool
ensurable :: BuiltinSemanticsVariant DefaultFun -> Bool
ensurable = \case
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantD -> Bool
True
BuiltinSemanticsVariant DefaultFun
R:BuiltinSemanticsVariantDefaultFun
DefaultFunSemanticsVariantE -> Bool
True
BuiltinSemanticsVariant DefaultFun
_ -> Bool
False
{-# INLINE ensurable #-}