fixed-length-0.1.1: Lists with statically known length based on non-empty package.
Data.FixedLength
class list ~ List (Position list) => C list where Source #
Minimal complete definition
switch
Associated Types
type Position list :: * Source #
Methods
switch :: f T -> (forall list0. C list0 => f (T list0)) -> f list Source #
Instances
type Position (T :: * -> *) :: * Source #
switch :: f T -> (forall list0. C list0 => f (T list0)) -> f T Source #
type Position (T list :: * -> *) :: * Source #
switch :: f T -> (forall list0. C list0 => f (T list0)) -> f (T list) Source #
type family List position :: * -> * Source #
switch :: C list => f T -> (forall list0. C list0 => f (T list0)) -> f list Source #
newtype Wrap list a Source #
Constructors
Fields
fmap :: (a -> b) -> Wrap list a -> Wrap list b #
(<$) :: a -> Wrap list b -> Wrap list a #
pure :: a -> Wrap list a #
(<*>) :: Wrap list (a -> b) -> Wrap list a -> Wrap list b #
(*>) :: Wrap list a -> Wrap list b -> Wrap list b #
(<*) :: Wrap list a -> Wrap list b -> Wrap list a #
fold :: Monoid m => Wrap list m -> m #
foldMap :: Monoid m => (a -> m) -> Wrap list a -> m #
foldr :: (a -> b -> b) -> b -> Wrap list a -> b #
foldr' :: (a -> b -> b) -> b -> Wrap list a -> b #
foldl :: (b -> a -> b) -> b -> Wrap list a -> b #
foldl' :: (b -> a -> b) -> b -> Wrap list a -> b #
foldr1 :: (a -> a -> a) -> Wrap list a -> a #
foldl1 :: (a -> a -> a) -> Wrap list a -> a #
toList :: Wrap list a -> [a] #
null :: Wrap list a -> Bool #
length :: Wrap list a -> Int #
elem :: Eq a => a -> Wrap list a -> Bool #
maximum :: Ord a => Wrap list a -> a #
minimum :: Ord a => Wrap list a -> a #
sum :: Num a => Wrap list a -> a #
product :: Num a => Wrap list a -> a #
traverse :: Applicative f => (a -> f b) -> Wrap list a -> f (Wrap list b) #
sequenceA :: Applicative f => Wrap list (f a) -> f (Wrap list a) #
mapM :: Monad m => (a -> m b) -> Wrap list a -> m (Wrap list b) #
sequence :: Monad m => Wrap list (m a) -> m (Wrap list a) #
newtype WrapPos list Source #
(==) :: WrapPos list -> WrapPos list -> Bool #
(/=) :: WrapPos list -> WrapPos list -> Bool #
compare :: WrapPos list -> WrapPos list -> Ordering #
(<) :: WrapPos list -> WrapPos list -> Bool #
(<=) :: WrapPos list -> WrapPos list -> Bool #
(>) :: WrapPos list -> WrapPos list -> Bool #
(>=) :: WrapPos list -> WrapPos list -> Bool #
max :: WrapPos list -> WrapPos list -> WrapPos list #
min :: WrapPos list -> WrapPos list -> WrapPos list #
data Zero Source #
(==) :: Zero -> Zero -> Bool #
(/=) :: Zero -> Zero -> Bool #
compare :: Zero -> Zero -> Ordering #
(<) :: Zero -> Zero -> Bool #
(<=) :: Zero -> Zero -> Bool #
(>) :: Zero -> Zero -> Bool #
(>=) :: Zero -> Zero -> Bool #
max :: Zero -> Zero -> Zero #
min :: Zero -> Zero -> Zero #
data Succ pos Source #
(==) :: Succ pos -> Succ pos -> Bool #
(/=) :: Succ pos -> Succ pos -> Bool #
compare :: Succ pos -> Succ pos -> Ordering #
(<) :: Succ pos -> Succ pos -> Bool #
(<=) :: Succ pos -> Succ pos -> Bool #
(>) :: Succ pos -> Succ pos -> Bool #
(>=) :: Succ pos -> Succ pos -> Bool #
max :: Succ pos -> Succ pos -> Succ pos #
min :: Succ pos -> Succ pos -> Succ pos #
showsPrec :: Int -> Succ pos -> ShowS #
show :: Succ pos -> String #
showList :: [Succ pos] -> ShowS #
toList :: C list => list a -> [a] Source #
equal :: (C list, Eq a) => list a -> list a -> Bool Source #
showsPrec :: (C list, Show a) => Int -> list a -> ShowS Source #
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 #
indicesInt :: C list => list Int 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 #