effect-monad-0.6: Embeds effect systems into Haskell using parameteric effect monads

Safe HaskellSafe-Inferred
LanguageHaskell98

Control.Effect.Helpers.List

Documentation

data List l where Source

Constructors

Nil :: List [] 
Cons :: x -> List xs -> List (x : xs) 

type family s :++ t :: [*] Source

Instances

type ([] *) :++ ys = ys 
type ((:) * x xs) :++ ys = (:) * x ((:++) xs ys) 

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

class Split s t where Source

Methods

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

Instances

Split ([] *) xs 
Split xs ys => Split ((:) * x xs) ys