hw-prim-0.6.1.0: Primitive functions and data types

Safe HaskellNone
LanguageHaskell2010

HaskellWorks.Data.AtIndex

Synopsis

Documentation

class Container a Source #

Associated Types

type Elem a Source #

Instances

Container ByteString Source # 

Associated Types

type Elem ByteString :: * Source #

Container [a] Source # 

Associated Types

type Elem [a] :: * Source #

Container (Vector Int) Source # 

Associated Types

type Elem (Vector Int) :: * Source #

Container (Vector Int8) Source # 

Associated Types

type Elem (Vector Int8) :: * Source #

Container (Vector Int16) Source # 

Associated Types

type Elem (Vector Int16) :: * Source #

Container (Vector Int32) Source # 

Associated Types

type Elem (Vector Int32) :: * Source #

Container (Vector Int64) Source # 

Associated Types

type Elem (Vector Int64) :: * Source #

Container (Vector Word8) Source # 

Associated Types

type Elem (Vector Word8) :: * Source #

Container (Vector Word16) Source # 

Associated Types

type Elem (Vector Word16) :: * Source #

Container (Vector Word32) Source # 

Associated Types

type Elem (Vector Word32) :: * Source #

Container (Vector Word64) Source # 

Associated Types

type Elem (Vector Word64) :: * Source #

Container (Vector Int8) Source # 

Associated Types

type Elem (Vector Int8) :: * Source #

Container (Vector Int16) Source # 

Associated Types

type Elem (Vector Int16) :: * Source #

Container (Vector Int32) Source # 

Associated Types

type Elem (Vector Int32) :: * Source #

Container (Vector Int64) Source # 

Associated Types

type Elem (Vector Int64) :: * Source #

Container (Vector Word8) Source # 

Associated Types

type Elem (Vector Word8) :: * Source #

Container (Vector Word16) Source # 

Associated Types

type Elem (Vector Word16) :: * Source #

Container (Vector Word32) Source # 

Associated Types

type Elem (Vector Word32) :: * Source #

Container (Vector Word64) Source # 

Associated Types

type Elem (Vector Word64) :: * Source #

class Length v => AtIndex v where Source #

Minimal complete definition

(!!!), atIndex

Methods

(!!!) :: v -> Position -> Elem v Source #

atIndex :: v -> Position -> Elem v Source #

Instances

AtIndex ByteString Source # 
AtIndex [a] Source # 

Methods

(!!!) :: [a] -> Position -> Elem [a] Source #

atIndex :: [a] -> Position -> Elem [a] Source #

AtIndex (Vector Int) Source # 
AtIndex (Vector Int8) Source # 
AtIndex (Vector Int16) Source # 
AtIndex (Vector Int32) Source # 
AtIndex (Vector Int64) Source # 
AtIndex (Vector Word8) Source # 
AtIndex (Vector Word16) Source # 
AtIndex (Vector Word32) Source # 
AtIndex (Vector Word64) Source # 
AtIndex (Vector Int8) Source # 
AtIndex (Vector Int16) Source # 
AtIndex (Vector Int32) Source # 
AtIndex (Vector Int64) Source # 
AtIndex (Vector Word8) Source # 
AtIndex (Vector Word16) Source # 
AtIndex (Vector Word32) Source # 
AtIndex (Vector Word64) Source # 

class Container v => Length v where Source #

Minimal complete definition

length

Methods

length :: v -> Count Source #

end :: v -> Position Source #

Instances

Length ByteString Source # 
Length [a] Source # 

Methods

length :: [a] -> Count Source #

end :: [a] -> Position Source #

Length (Vector Int) Source # 
Length (Vector Int8) Source # 
Length (Vector Int16) Source # 
Length (Vector Int32) Source # 
Length (Vector Int64) Source # 
Length (Vector Word8) Source # 
Length (Vector Word16) Source # 
Length (Vector Word32) Source # 
Length (Vector Word64) Source # 
Length (Vector Int8) Source # 
Length (Vector Int16) Source # 
Length (Vector Int32) Source # 
Length (Vector Int64) Source # 
Length (Vector Word8) Source # 
Length (Vector Word16) Source # 
Length (Vector Word32) Source # 
Length (Vector Word64) Source # 

atIndexOr :: AtIndex v => Elem v -> v -> Position -> Elem v Source #

Get the element of the container at the specified position, but return d if position is out of bounds.

atIndexOrBeforeOrAfter :: AtIndex v => Elem v -> Elem v -> v -> Position -> Elem v Source #

Get the element of the container at the specified position, but return before if position before the first element or after if the position is beyond the last element.

atIndexOrBeforeOrLast :: (AtIndex v, Length v) => Elem v -> v -> Position -> Elem v Source #

Get the element of the container at the specified position, but return the last element if the position is past the end of the container or the default value before' if the position is before the beginning of the vector. In the case when the container is empty, then the default value before' is used.