effect-monad-0.8.0.0: Embeds effect systems and program logics into Haskell using graded monads and parameterised monads

Control.Effect.Helpers.List

data List (l :: [*]) where Source #

Constructors

type family (s :: [*]) :++ (t :: [*]) :: [*] where ... Source #

Equations

append :: List s -> List t -> List (s :++ t) Source #

class Split (s :: [*]) (t :: [*]) where Source #

Minimal complete definition

split

Methods

split :: List (s :++ t) -> (List s, List t) Source #

Instances

split :: List ([*] :++ xs) -> (List [*], List xs) Source #

split :: List ((* ': x) xs :++ ys) -> (List ((* ': x) xs), List ys) Source #

lengthL :: List xs -> Int Source #

type family LookupT k xs where ... Source #

class LookUpA k xs (LookupT k xs) => Lookup k xs where Source #

lookup :: List xs -> Proxy k -> Maybe (LookupT k xs) Source #

class LookUpA k xs x where Source #

lookupA

lookupA :: List xs -> Proxy k -> Maybe x Source #

lookupA :: List y -> Proxy k2 ((* ': (j, x)) xs) -> Maybe x Source #

lookupA :: List x -> Proxy k ((* ': (k, x)) xs) -> Maybe x Source #