ptera-core-0.1.0.0: A parser generator
Safe HaskellNone
LanguageHaskell2010

Language.Parser.Ptera.Data.HFList

Synopsis

Documentation

type T = HFList Source #

data HFList :: (k -> Type) -> [k] -> Type where Source #

Constructors

HFNil :: HFList f '[] 
HFCons :: f x -> HFList f xs -> HFList f (x ': xs) 

data Membership (xs :: [k]) (x :: k) #

A witness that of x is a member of a type level set xs.

Instances

Instances details
Lift (Membership xs x :: Type) 
Instance details

Defined in Type.Membership.Internal

Methods

lift :: Membership xs x -> Q Exp #

liftTyped :: Membership xs x -> Q (TExp (Membership xs x)) #

Eq (Membership xs x) 
Instance details

Defined in Type.Membership.Internal

Methods

(==) :: Membership xs x -> Membership xs x -> Bool #

(/=) :: Membership xs x -> Membership xs x -> Bool #

Ord (Membership xs x) 
Instance details

Defined in Type.Membership.Internal

Methods

compare :: Membership xs x -> Membership xs x -> Ordering #

(<) :: Membership xs x -> Membership xs x -> Bool #

(<=) :: Membership xs x -> Membership xs x -> Bool #

(>) :: Membership xs x -> Membership xs x -> Bool #

(>=) :: Membership xs x -> Membership xs x -> Bool #

max :: Membership xs x -> Membership xs x -> Membership xs x #

min :: Membership xs x -> Membership xs x -> Membership xs x #

Show (Membership xs x) 
Instance details

Defined in Type.Membership.Internal

Methods

showsPrec :: Int -> Membership xs x -> ShowS #

show :: Membership xs x -> String #

showList :: [Membership xs x] -> ShowS #

Semigroup (Membership xs x) 
Instance details

Defined in Type.Membership.Internal

Methods

(<>) :: Membership xs x -> Membership xs x -> Membership xs x #

sconcat :: NonEmpty (Membership xs x) -> Membership xs x #

stimes :: Integral b => b -> Membership xs x -> Membership xs x #

NFData (Membership xs x) 
Instance details

Defined in Type.Membership.Internal

Methods

rnf :: Membership xs x -> () #

Hashable (Membership xs x) 
Instance details

Defined in Type.Membership.Internal

Methods

hashWithSalt :: Int -> Membership xs x -> Int #

hash :: Membership xs x -> Int #

Pretty (Membership xs x) 
Instance details

Defined in Type.Membership.Internal

Methods

pretty :: Membership xs x -> Doc ann #

prettyList :: [Membership xs x] -> Doc ann #

type family Concat (xs1 :: [k]) (xs2 :: [k]) :: [k] where ... Source #

Equations

Concat '[] xs2 = xs2 
Concat (x ': xs1) xs2 = x ': Concat xs1 xs2 

hconcat :: HFList f xs1 -> HFList f xs2 -> HFList f (Concat xs1 xs2) Source #

hfoldrWithIndex :: forall f r xs. (forall x ys. Membership xs x -> f x -> r ys -> r (x ': ys)) -> r '[] -> HFList f xs -> r xs Source #

htraverseWithIndex :: forall m f g xs. Applicative m => (forall x. Membership xs x -> f x -> m (g x)) -> HFList f xs -> m (HFList g xs) Source #

hmapWithIndex :: (forall x. Membership xs x -> f x -> g x) -> HFList f xs -> HFList g xs Source #

hfoldMWithIndex :: forall m r f xs. Monad m => r -> (forall x. r -> Membership xs x -> f x -> m r) -> HFList f xs -> m r Source #

hforMWithIndex :: forall m f xs. Applicative m => HFList f xs -> (forall x. Membership xs x -> f x -> m ()) -> m () Source #

hfoldlWithIndex :: r -> (forall x. r -> Membership xs x -> f x -> r) -> HFList f xs -> r Source #

data DictF :: (k -> Constraint) -> k -> Type where Source #

Constructors

DictF :: c x => DictF c x