]> gitweb @ CieloNegro.org - hs-rrdtool.git/blob - Types/Data/List/Ops.hs
improved Types.Data.Map
[hs-rrdtool.git] / Types / Data / List / Ops.hs
1 {-# LANGUAGE
2   TypeFamilies,
3   UndecidableInstances
4   #-}
5 module Types.Data.List.Ops
6     ( App
7     , App2
8     , App3
9     , App4
10     , App5
11
12     , Map
13     , Foldl
14     )
15     where
16
17 import Types.Data.List
18
19
20 type family App  f a
21 type family App2 f a b
22 type family App3 f a b c
23 type family App4 f a b c d
24 type family App5 f a b c d e
25
26 type family   Map f l
27 type instance Map f Null        = Null
28 type instance Map f (Cons x xs) = Cons (App f x) (Map f xs)
29
30 type family   Foldl f z l
31 type instance Foldl f z Null        = z
32 type instance Foldl f z (Cons x xs) = Foldl f (App2 f z x) xs