plutus-core-1.36.0.0: Language library for Plutus Core
Safe HaskellSafe-Inferred
LanguageHaskell2010

PlutusCore.Examples.Builtins

Synopsis

Documentation

size :: forall a. (Bounded a, Enum a) => Int Source #

data ExtensionFun Source #

Instances

Instances details
Bounded ExtensionFun Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Enum ExtensionFun Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Generic ExtensionFun Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Associated Types

type Rep ExtensionFun :: Type -> Type Source #

Ix ExtensionFun Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Show ExtensionFun Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Eq ExtensionFun Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Ord ExtensionFun Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Hashable ExtensionFun Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Pretty ExtensionFun Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Methods

pretty :: ExtensionFun -> Doc ann #

prettyList :: [ExtensionFun] -> Doc ann #

uni ~ DefaultUni => ToBuiltinMeaning uni ExtensionFun Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Bounded (BuiltinSemanticsVariant ExtensionFun) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Enum (BuiltinSemanticsVariant ExtensionFun) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Show (BuiltinSemanticsVariant ExtensionFun) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Default (BuiltinSemanticsVariant ExtensionFun) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Eq (BuiltinSemanticsVariant ExtensionFun) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Ord (BuiltinSemanticsVariant ExtensionFun) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

type Rep ExtensionFun Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

type Rep ExtensionFun = D1 ('MetaData "ExtensionFun" "PlutusCore.Examples.Builtins" "plutus-core-1.36.0.0-7ehJj5tIPqoJIiiivXkX9N" 'False) ((((C1 ('MetaCons "Factorial" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ForallFortyTwo" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SumInteger" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Const" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Id" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "IdAssumeBool" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IdAssumeCheckBool" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "IdSomeConstantBool" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IdIntegerAsBool" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "IdFInteger" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IdList" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "IdRank2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ScottToMetaUnit" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FailingSucc" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExpensiveSucc" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "FailingPlus" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ExpensivePlus" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IsConstant" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "UnsafeCoerce" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UnsafeCoerceEl" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Undefined" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Absurd" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "ErrorPrime" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Comma" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BiconstPair" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Swap" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "SwapEls" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExtensionVersion" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TrackCosts" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IntNoIntegerNoWord" 'PrefixI 'False) (U1 :: Type -> Type))))))
data BuiltinSemanticsVariant ExtensionFun Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

type CostingPart uni ExtensionFun Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

newtype MetaForall name a Source #

Normally forall in the type of a Haskell function gets detected and instantiated automatically, however there's no way of doing that for a forall that binds a never referenced type variable. Which is OK, because that would be a pretty weird builtin, however it's definable and for the purpose of testing we do introduce such a builtin, hence this definition allowing us to create an all that binds a never referenced type variable in Plutus while still using makeBuiltinMeaning.

Constructors

MetaForall a 

Instances

Instances details
(name ~ ('TyNameRep text uniq :: TyNameRep kind), KnownSymbol text, KnownNat uniq, KnownKind kind, KnownTypeAst tyname uni a) => KnownTypeAst tyname uni (MetaForall name a :: Type) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Associated Types

type IsBuiltin uni (MetaForall name a) :: Bool Source #

type ToHoles uni (MetaForall name a) :: [Hole] Source #

type ToBinds uni acc (MetaForall name a) :: [Some TyNameRep] Source #

Methods

typeAst :: Type0 tyname uni () Source #

MakeKnownIn DefaultUni term a => MakeKnownIn DefaultUni term (MetaForall name a) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Methods

makeKnown :: MetaForall name a -> BuiltinResult term Source #

type ToBinds uni acc (MetaForall name a :: Type) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

type ToBinds uni acc (MetaForall name a :: Type) = ToBinds uni (Insert ('Some name) acc) a
type IsBuiltin uni (MetaForall name a :: Type) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

type IsBuiltin uni (MetaForall name a :: Type) = 'False
type ToHoles uni (MetaForall name a :: Type) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

type ToHoles uni (MetaForall name a :: Type) = '[TypeHole a :: Hole]

data PlcListRep (a :: Type) Source #

Instances

Instances details
(tyname ~ TyName, KnownTypeAst tyname uni a) => KnownTypeAst tyname uni (PlcListRep a :: Type) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Associated Types

type IsBuiltin uni (PlcListRep a) :: Bool Source #

type ToHoles uni (PlcListRep a) :: [Hole] Source #

type ToBinds uni acc (PlcListRep a) :: [Some TyNameRep] Source #

Methods

typeAst :: Type0 tyname uni () Source #

type ToBinds uni acc (PlcListRep a :: Type) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

type ToBinds uni acc (PlcListRep a :: Type) = ToBinds uni acc a
type IsBuiltin uni (PlcListRep a :: Type) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

type IsBuiltin uni (PlcListRep a :: Type) = 'False
type ToHoles uni (PlcListRep a :: Type) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

type ToHoles uni (PlcListRep a :: Type) = '[RepHole a :: Hole]

class Whatever a where Source #

For the most part we don't care about costing functions of example builtins, hence this class for being explicit about not caring.

Methods

whatever :: a Source #

The costing function of a builtin whose costing function doesn't matter.

Instances

Instances details
Whatever ExBudgetStream Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Whatever b => Whatever (a -> b) Source # 
Instance details

Defined in PlutusCore.Examples.Builtins

Methods

whatever :: a -> b Source #

Orphan instances

UniOf term ~ DefaultUni => MakeKnownIn DefaultUni term Void Source # 
Instance details

Methods

makeKnown :: Void -> BuiltinResult term Source #

UniOf term ~ DefaultUni => ReadKnownIn DefaultUni term Void Source # 
Instance details

Methods

readKnown :: term -> ReadKnownM Void Source #

tyname ~ TyName => KnownTypeAst tyname DefaultUni Void Source # 
Instance details

Methods

typeAst :: Type tyname DefaultUni () Source #

(ToBuiltinMeaning uni fun1, ToBuiltinMeaning uni fun2, Default (BuiltinSemanticsVariant fun1), Default (BuiltinSemanticsVariant fun2)) => ToBuiltinMeaning uni (Either fun1 fun2) Source # 
Instance details

Associated Types

type CostingPart uni (Either fun1 fun2) Source #

data BuiltinSemanticsVariant (Either fun1 fun2) Source #

Methods

toBuiltinMeaning :: HasMeaningIn uni val => BuiltinSemanticsVariant (Either fun1 fun2) -> Either fun1 fun2 -> BuiltinMeaning val (CostingPart uni (Either fun1 fun2)) Source #

(Default (BuiltinSemanticsVariant fun1), Default (BuiltinSemanticsVariant fun2)) => Default (BuiltinSemanticsVariant (Either fun1 fun2)) Source # 
Instance details

Methods

def :: BuiltinSemanticsVariant (Either fun1 fun2) #

(Bounded a, Bounded b) => Bounded (Either a b) Source # 
Instance details

(Eq a, Eq b, Bounded a, Bounded b, Enum a, Enum b) => Enum (Either a b) Source # 
Instance details

Methods

succ :: Either a b -> Either a b Source #

pred :: Either a b -> Either a b Source #

toEnum :: Int -> Either a b Source #

fromEnum :: Either a b -> Int Source #

enumFrom :: Either a b -> [Either a b] Source #

enumFromThen :: Either a b -> Either a b -> [Either a b] Source #

enumFromTo :: Either a b -> Either a b -> [Either a b] Source #

enumFromThenTo :: Either a b -> Either a b -> Either a b -> [Either a b] Source #

(Bounded a, Bounded b, Ix a, Ix b) => Ix (Either a b) Source # 
Instance details

Methods

range :: (Either a b, Either a b) -> [Either a b] Source #

index :: (Either a b, Either a b) -> Either a b -> Int Source #

unsafeIndex :: (Either a b, Either a b) -> Either a b -> Int Source #

inRange :: (Either a b, Either a b) -> Either a b -> Bool Source #

rangeSize :: (Either a b, Either a b) -> Int Source #

unsafeRangeSize :: (Either a b, Either a b) -> Int Source #