generics-sop-0.5.1.4: Generic Programming using True Sums of Products
Safe HaskellNone
LanguageHaskell2010

Generics.SOP.Sing

Documentation

data SList (a :: [k]) where #

Constructors

SNil :: forall {k}. SList ('[] :: [k]) 
SCons :: forall {k} (xs :: [k]) (x :: k). SListI xs => SList (x ': xs) 

Instances

Instances details
Show (SList xs) 
Instance details

Defined in Data.SOP.Sing

Methods

showsPrec :: Int -> SList xs -> ShowS

show :: SList xs -> String

showList :: [SList xs] -> ShowS

Eq (SList xs) 
Instance details

Defined in Data.SOP.Sing

Methods

(==) :: SList xs -> SList xs -> Bool

(/=) :: SList xs -> SList xs -> Bool

Ord (SList xs) 
Instance details

Defined in Data.SOP.Sing

Methods

compare :: SList xs -> SList xs -> Ordering

(<) :: SList xs -> SList xs -> Bool

(<=) :: SList xs -> SList xs -> Bool

(>) :: SList xs -> SList xs -> Bool

(>=) :: SList xs -> SList xs -> Bool

max :: SList xs -> SList xs -> SList xs

min :: SList xs -> SList xs -> SList xs

type SListI = All (Top :: k -> Constraint) #

sList :: forall {k} (xs :: [k]). SListI xs => SList xs #

para_SList :: forall {a} (xs :: [a]) r. SListI xs => r ('[] :: [a]) -> (forall (y :: a) (ys :: [a]). SListI ys => r ys -> r (y ': ys)) -> r xs #

case_SList :: forall {a} (xs :: [a]) r. SListI xs => r ('[] :: [a]) -> (forall (y :: a) (ys :: [a]). SListI ys => r (y ': ys)) -> r xs #

data Shape (a :: [k]) where #

Constructors

ShapeNil :: forall {k}. Shape ('[] :: [k]) 
ShapeCons :: forall {k} (xs :: [k]) (x :: k). SListI xs => Shape xs -> Shape (x ': xs) 

Instances

Instances details
Show (Shape xs) 
Instance details

Defined in Data.SOP.Sing

Methods

showsPrec :: Int -> Shape xs -> ShowS

show :: Shape xs -> String

showList :: [Shape xs] -> ShowS

Eq (Shape xs) 
Instance details

Defined in Data.SOP.Sing

Methods

(==) :: Shape xs -> Shape xs -> Bool

(/=) :: Shape xs -> Shape xs -> Bool

Ord (Shape xs) 
Instance details

Defined in Data.SOP.Sing

Methods

compare :: Shape xs -> Shape xs -> Ordering

(<) :: Shape xs -> Shape xs -> Bool

(<=) :: Shape xs -> Shape xs -> Bool

(>) :: Shape xs -> Shape xs -> Bool

(>=) :: Shape xs -> Shape xs -> Bool

max :: Shape xs -> Shape xs -> Shape xs

min :: Shape xs -> Shape xs -> Shape xs

shape :: forall k (xs :: [k]). SListI xs => Shape xs #

lengthSList :: forall k (xs :: [k]) proxy. SListI xs => proxy xs -> Int #