fixed-length-0.0.0.2: Lists with statically known length based on non-empty package.

Safe HaskellSafe-Inferred
LanguageHaskell98

Data.FixedLength

Documentation

class (list ~ List (Position list)) => C list where Source

Associated Types

type Position list :: * Source

type List position :: * -> * Source

Methods

switch :: f T -> (forall list0. C list0 => f (T list0)) -> f list Source

Instances

C T 
C list => C (T list) 

newtype Wrap list a Source

Constructors

Wrap 

Fields

unwrap :: list a
 

Instances

C list => Functor (Wrap list) 
C list => Applicative (Wrap list) 
C list => Foldable (Wrap list) 
C list => Traversable (Wrap list) 

newtype WrapPos list Source

Constructors

WrapPos 

Fields

unwrapPos :: Position list
 

Instances

C list => Eq (WrapPos list) 
C list => Ord (WrapPos list) 

data Zero Source

Instances

Eq Zero 
Ord Zero 
type List Zero = T 

data Succ pos Source

Constructors

Stop 
Succ pos 

Instances

Eq pos => Eq (Succ pos) 
Ord pos => Ord (Succ pos) 
Show pos => Show (Succ pos) 
type List (Succ position) = T (List position) 

map :: C list => (a -> b) -> list a -> list b Source

zipWith :: C list => (a -> b -> c) -> list a -> list b -> list c Source

sequenceA :: (Applicative f, C list) => list (f a) -> f (list a) Source

repeat :: C list => a -> list a Source

index :: C list => WrapPos list -> list a -> a Source

update :: C list => (a -> a) -> WrapPos list -> list a -> list a Source

indices :: C list => list (WrapPos list) Source

numFromPos :: C list => WrapPos list -> Word Source

type N0 = T Source

type N1 = GE1 T Source

type N2 = GE2 T Source

type N3 = GE3 T Source

type N4 = GE4 T Source

type N5 = GE5 T Source

type N6 = GE6 T Source

type N7 = GE7 T Source

type N8 = GE8 T Source

type GE1 list = T list Source

type GE2 list = T (GE1 list) Source

type GE3 list = T (GE2 list) Source

type GE4 list = T (GE3 list) Source

type GE5 list = T (GE4 list) Source

type GE6 list = T (GE5 list) Source

type GE7 list = T (GE6 list) Source

type GE8 list = T (GE7 list) Source

i0 :: WrapPos (GE1 list) Source

i1 :: WrapPos (GE2 list) Source

i2 :: WrapPos (GE3 list) Source

i3 :: WrapPos (GE4 list) Source

i4 :: WrapPos (GE5 list) Source

i5 :: WrapPos (GE6 list) Source

i6 :: WrapPos (GE7 list) Source

i7 :: WrapPos (GE8 list) Source

(!:) :: a -> f a -> T f a infixr 5

end :: T a Source