plutarch
Safe HaskellNone
LanguageGHC2021

Plutarch.Repr.Scott

Synopsis

Documentation

newtype PScottStruct (struct :: [[S -> Type]]) (s :: S) Source #

Since: 1.10.0

Constructors

PScottStruct 

Fields

Instances

Instances details
(PlutusType (PScottStruct struct), SListI2 struct, All2 PEq struct) => PEq (PScottStruct struct) Source #

Since: 1.10.0

Instance details

Defined in Plutarch.Repr.Scott

Methods

(#==) :: forall (s :: S). Term s (PScottStruct struct) -> Term s (PScottStruct struct) -> Term s PBool Source #

(SListI2 struct, PScottStructConstraint struct) => PlutusType (PScottStruct struct) Source #

Since: 1.10.0

Instance details

Defined in Plutarch.Repr.Scott

Associated Types

type PInner (PScottStruct struct) 
Instance details

Defined in Plutarch.Repr.Scott

type PInner (PScottStruct struct) = PForall (PScottStructInner struct)

Methods

pcon' :: forall (s :: S). PScottStruct struct s -> Term s (PInner (PScottStruct struct)) Source #

pmatch' :: forall (s :: S) (b :: S -> Type). Term s (PInner (PScottStruct struct)) -> (PScottStruct struct s -> Term s b) -> Term s b Source #

type PInner (PScottStruct struct) Source # 
Instance details

Defined in Plutarch.Repr.Scott

type PInner (PScottStruct struct) = PForall (PScottStructInner struct)

newtype PScottRec (struct :: [S -> Type]) (s :: S) Source #

Since: 1.10.0

Constructors

PScottRec 

Fields

Instances

Instances details
All PEq struct => PEq (PScottRec struct) Source #

Since: 1.10.0

Instance details

Defined in Plutarch.Repr.Scott

Methods

(#==) :: forall (s :: S). Term s (PScottRec struct) -> Term s (PScottRec struct) -> Term s PBool Source #

SListI struct => PlutusType (PScottRec struct) Source #

Since: 1.10.0

Instance details

Defined in Plutarch.Repr.Scott

Associated Types

type PInner (PScottRec struct) 
Instance details

Defined in Plutarch.Repr.Scott

type PInner (PScottRec struct) = PForall (PScottRecInner struct)

Methods

pcon' :: forall (s :: S). PScottRec struct s -> Term s (PInner (PScottRec struct)) Source #

pmatch' :: forall (s :: S) (b :: S -> Type). Term s (PInner (PScottRec struct)) -> (PScottRec struct s -> Term s b) -> Term s b Source #

type PInner (PScottRec struct) Source # 
Instance details

Defined in Plutarch.Repr.Scott

type PInner (PScottRec struct) = PForall (PScottRecInner struct)

newtype PScottStructInner (a :: [[S -> Type]]) (r :: S -> Type) (s :: S) Source #

Since: 1.10.0

Constructors

PScottStructInner (Term s (ScottFn (ScottList a r) r)) 

newtype PScottRecInner (a :: [S -> Type]) (r :: S -> Type) (s :: S) Source #

Since: 1.10.0

Constructors

PScottRecInner (Term s (ScottFn a r)) 

newtype DeriveAsScottStruct (a :: S -> Type) (s :: S) Source #

Since: 1.10.0

Constructors

DeriveAsScottStruct 

Fields

Instances

Instances details
(Generic (a (Any :: S)), struct ~ UnTermStruct (a (Any :: S)), SListI2 struct, forall (s :: S). StructSameRepr s a struct, PScottStructConstraint struct) => PlutusType (DeriveAsScottStruct a) Source #

Since: 1.10.0

Instance details

Defined in Plutarch.Repr.Scott

Associated Types

type PInner (DeriveAsScottStruct a) 
Instance details

Defined in Plutarch.Repr.Scott

Methods

pcon' :: forall (s :: S). DeriveAsScottStruct a s -> Term s (PInner (DeriveAsScottStruct a)) Source #

pmatch' :: forall (s :: S) (b :: S -> Type). Term s (PInner (DeriveAsScottStruct a)) -> (DeriveAsScottStruct a s -> Term s b) -> Term s b Source #

type PInner (DeriveAsScottStruct a) Source # 
Instance details

Defined in Plutarch.Repr.Scott

newtype DeriveAsScottRec (a :: S -> Type) (s :: S) Source #

Since: 1.10.0

Constructors

DeriveAsScottRec 

Fields

Instances

Instances details
(Generic (a (Any :: S)), '[struct'] ~ Code (a (Any :: S)), struct ~ UnTermRec struct', SListI struct, forall (s :: S). StructSameRepr s a '[struct], RecTypePrettyError (Code (a (Any :: S)))) => PlutusType (DeriveAsScottRec a) Source #

Since: 1.10.0

Instance details

Defined in Plutarch.Repr.Scott

Associated Types

type PInner (DeriveAsScottRec a) 
Instance details

Defined in Plutarch.Repr.Scott

type PInner (DeriveAsScottRec a) = PScottRec (UnTermRec (Head (Code (a (Any :: S)))))

Methods

pcon' :: forall (s :: S). DeriveAsScottRec a s -> Term s (PInner (DeriveAsScottRec a)) Source #

pmatch' :: forall (s :: S) (b :: S -> Type). Term s (PInner (DeriveAsScottRec a)) -> (DeriveAsScottRec a s -> Term s b) -> Term s b Source #

type PInner (DeriveAsScottRec a) Source # 
Instance details

Defined in Plutarch.Repr.Scott

type PInner (DeriveAsScottRec a) = PScottRec (UnTermRec (Head (Code (a (Any :: S)))))