| Safe Haskell | Safe-Inferred | 
|---|---|
| Language | Haskell2010 | 
PlutusCore.Examples.Data.Data
Synopsis
- ofoldrData ∷ MatchOption → Term TyName Name DefaultUni (Either DefaultFun ExtensionFun) ()
- exampleData ∷ Term tyname Name DefaultUni (Either DefaultFun ExtensionFun) ()
Documentation
ofoldrData ∷ MatchOption → Term TyName Name DefaultUni (Either DefaultFun ExtensionFun) () Source #
Right-folding over Data inside PLC currently hardcoded to only ever return Data as a
 result, 'cause we need to be able to map built-in lists and pairs in the definition of the
 right fold for Data and we can only do that monomorphically
 (see Note [Representable built-in functions over polymorphic built-in types]),
 which forces us to always return a Data.
 Alternatively we could convert built-in lists and pairs to their non-built-in
 Scott/Church-encoded forms, map polymorphically and convert back at the call site, but we really
 only use this definition as a test, so it's fine to make it overly specific for the sake of
 keeping the actual test trivial.
metaTypeLet r = data in
    \(fConstr : integer -> list r -> r)
     (fMap : list (pair r r) -> r)
     (fList : list r -> r)
     (fI : integer -> r)
     (fB : bytestring -> r) ->
         fix {data} {r} \(rec : data -> r) (d : data) ->
             matchData
                 d
                 {r}
                 (\(i : integer) (ds : list data) -> fConstr i (omapList {data} rec ds)
                 (\(es : list (pair data data)) ->
                     fMap (omapList {pair data data} (obothPair {data} rec) es))
                 (\(ds : list data) -> fList (omapList {data} rec ds))
                 fI
                 fBexampleData ∷ Term tyname Name DefaultUni (Either DefaultFun ExtensionFun) () Source #
Just a random Data object.