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

Data.RandomAccessList.Class

Synopsis

Documentation

class RandomAccessList e where #

Typeclass for various types implementing the "signature" of a random-access list.

A true random-access list should have good asymptotic behaviour for these methods also, but for convenience we also provide implementations for e.g. '[a]', which has bad lookup performance.

Minimal complete definition

empty, cons, uncons, length

Associated Types

type Element e :: NonEmptyVector (Element e) -> e -> e #

Prepend many elements to the list. Has a default implementation, but implementations can provide more efficient ones.

indexZero :: e -> NonEmptyVector (Element [a]) -> [a] -> [a] #

indexZero :: [a] -> Word64 -> Maybe (Element [a]) #

indexOne :: [a] -> Word64 -> Maybe (Element [a]) #

unsafeIndexZero :: [a] -> Word64 -> Element [a] #

unsafeIndexOne :: [a] -> Word64 -> Element [a] #

head :: (RandomAccessList e, a ~ Element e) => e -> a #

tail :: RandomAccessList e => e -> e #

newtype AsRAL a #

Constructors

AsRAL a 

Instances

Instances details
RandomAccessList e => IsList (AsRAL e) # 
Instance details

Defined in Data.RandomAccessList.Class

Associated Types

type Item (AsRAL e) #

Methods

fromList :: [Item (AsRAL e)] -> AsRAL e #

fromListN :: Int -> [Item (AsRAL e)] -> AsRAL e #

toList :: AsRAL e -> [Item (AsRAL e)] #

type Item (AsRAL e) # 
Instance details

Defined in Data.RandomAccessList.Class

type Item (AsRAL e) = Element e