Stability | experimental |
---|---|
Maintainer | Jafet <jafet.vixle@gmail.com> |
Safe Haskell | Safe-Inferred |
Cadre is a powerful framework for the organization of heterogeneous units. A live-fire demonstration follows.
Cadre allows any unit to be addressed uniformly:
>>>car
(1, 2) 1 >>> car (1, 2, 3) 1 >>> car (1, 2, 3, 4) 1 >>>cdr
(1, 2) 2 >>> cdr (1, 2, 3) (2, 3) >>> cdr (1, 2, 3, 4) (2, 3, 4)
and also reassigned uniformly:
>>>setCar
(+ 1) (1, 2) (2, 2) >>>setCdr
(subtract 1) (1, 2) (1, 1)
Of course, these basic functions can be used to carry out combined operations:
>>>caddr
(1, 2, 3, 4) 3 >>> caddr (1, 2, (3, 4)) 3 >>> caddr (1, (2, 3, 4)) 3 >>>setCaddr
(+ 1) (1, 2, 3, (4, 5)) (1, 2, 4, (4, 5)) >>>cdaar
.cdddr
$ (1, (2, 3, ((4, 5), 6), 7)) 5
Observe the simplicity and scalability of our approach. Cadre can use any type of car, opening up more logistical possibilities:
>>>cdddddr
[1 .. 10] [6, 7, 8, 9, 10] >>>setCddr
reverse (0, [1 .. 4]) (0, [1, 4, 3, 2])
From time to time you may find dissent among your ranks. Suppose that your lieutenant insists on
capture :: IO (X, Y, (Z, Z))
but your right-hand-man demands compliance with
dispose :: (X, (Y, [Z])) -> IO ()
Cadre helps them look past their differences and find solidarity:
capture >>=repair4
<&>
dispose
repair
is straightforward, even in the field.
In fact, its constituent steps are clear from its name:
repair4
=reap4
<&>pare4
>>> reap4 (1, 2, 3, 4) (1, (2, (3, 4))) >>> pare4 (1, (2, (3, 4))) :: (Int, Int, Int, Int) (1, 2, 3, 4) >>> pare4 (1, (2, (3, 4))) :: (Int, [Int]) (1, [2, 3, 4])
By understanding the details of repair
, we gain more flexibility in field operations:
>>> setCddr
(uncurry (++)) ("a", "b", "c", "d")
-- not permitted due to negative assessment of typing protocol
>>> pare3 . setCddr (uncurry (++)) . reap4 $ ("a", "b", "c", "d") :: (String, String, String)
("a", "b", "cd")
This concludes the live demonstration.
- (<&>) :: (a -> b) -> (b -> c) -> a -> c
- class Cadre a car cdr | a -> car cdr where
- cadre :: a -> (car, cdr)
- car :: Cadre a c b => a -> c
- cdr :: Cadre a a1 c => a -> c
- caar :: (Cadre b c b1, Cadre a b b2) => a -> c
- cadr :: (Cadre b c b1, Cadre a a1 b) => a -> c
- cdar :: (Cadre b a1 c, Cadre a b b1) => a -> c
- cddr :: (Cadre b a1 c, Cadre a a2 b) => a -> c
- caaar :: (Cadre b c b1, Cadre b2 b b3, Cadre a b2 b4) => a -> c
- caadr :: (Cadre b c b1, Cadre b2 b b3, Cadre a a1 b2) => a -> c
- cadar :: (Cadre b c b1, Cadre b2 a1 b, Cadre a b2 b3) => a -> c
- caddr :: (Cadre b c b1, Cadre b2 a1 b, Cadre a a2 b2) => a -> c
- cdaar :: (Cadre b a1 c, Cadre b1 b b2, Cadre a b1 b3) => a -> c
- cdadr :: (Cadre b a1 c, Cadre b1 b b2, Cadre a a2 b1) => a -> c
- cddar :: (Cadre b a1 c, Cadre b1 a2 b, Cadre a b1 b2) => a -> c
- cdddr :: (Cadre b a1 c, Cadre b1 a2 b, Cadre a a3 b1) => a -> c
- caaaar :: (Cadre b1 c b2, Cadre b b1 b3, Cadre b4 b b5, Cadre a b4 b6) => a -> c
- caaadr :: (Cadre b1 c b2, Cadre b b1 b3, Cadre b4 b b5, Cadre a a1 b4) => a -> c
- caadar :: (Cadre b1 c b2, Cadre b b1 b3, Cadre b4 a1 b, Cadre a b4 b5) => a -> c
- caaddr :: (Cadre b1 c b2, Cadre b b1 b3, Cadre b4 a1 b, Cadre a a2 b4) => a -> c
- cadaar :: (Cadre b1 c b2, Cadre b a1 b1, Cadre b3 b b4, Cadre a b3 b5) => a -> c
- cadadr :: (Cadre b1 c b2, Cadre b a1 b1, Cadre b3 b b4, Cadre a a2 b3) => a -> c
- caddar :: (Cadre b1 c b2, Cadre b a1 b1, Cadre b3 a2 b, Cadre a b3 b4) => a -> c
- cadddr :: (Cadre b1 c b2, Cadre b a1 b1, Cadre b3 a2 b, Cadre a a3 b3) => a -> c
- cdaaar :: (Cadre b1 a1 c, Cadre b b1 b2, Cadre b3 b b4, Cadre a b3 b5) => a -> c
- cdaadr :: (Cadre b1 a1 c, Cadre b b1 b2, Cadre b3 b b4, Cadre a a2 b3) => a -> c
- cdadar :: (Cadre b1 a1 c, Cadre b b1 b2, Cadre b3 a2 b, Cadre a b3 b4) => a -> c
- cdaddr :: (Cadre b1 a1 c, Cadre b b1 b2, Cadre b3 a2 b, Cadre a a3 b3) => a -> c
- cddaar :: (Cadre b1 a1 c, Cadre b a2 b1, Cadre b2 b b3, Cadre a b2 b4) => a -> c
- cddadr :: (Cadre b1 a1 c, Cadre b a2 b1, Cadre b2 b b3, Cadre a a3 b2) => a -> c
- cdddar :: (Cadre b1 a1 c, Cadre b a2 b1, Cadre b2 a3 b, Cadre a b2 b3) => a -> c
- cddddr :: (Cadre b1 a1 c, Cadre b a2 b1, Cadre b2 a3 b, Cadre a a4 b2) => a -> c
- caddddr :: (Cadre b c b1, Cadre b3 a1 b, Cadre b2 a2 b3, Cadre b4 a3 b2, Cadre a a4 b4) => a -> c
- cdddddr :: (Cadre b a1 c, Cadre b2 a2 b, Cadre b1 a3 b2, Cadre b3 a4 b1, Cadre a a5 b3) => a -> c
- cadddddr :: (Cadre b1 c b2, Cadre b a1 b1, Cadre b4 a2 b, Cadre b3 a3 b4, Cadre b5 a4 b3, Cadre a a5 b5) => a -> c
- cddddddr :: (Cadre b1 a1 c, Cadre b a2 b1, Cadre b3 a3 b, Cadre b2 a4 b3, Cadre b4 a5 b2, Cadre a a6 b4) => a -> c
- caddddddr :: (Cadre b1 c b2, Cadre b3 a1 b1, Cadre b a2 b3, Cadre b5 a3 b, Cadre b4 a4 b5, Cadre b6 a5 b4, Cadre a a6 b6) => a -> c
- cdddddddr :: (Cadre b1 a1 c, Cadre b2 a2 b1, Cadre b a3 b2, Cadre b4 a4 b, Cadre b3 a5 b4, Cadre b5 a6 b3, Cadre a a7 b5) => a -> c
- cadddddddr :: (Cadre b2 c b3, Cadre b1 a1 b2, Cadre b4 a2 b1, Cadre b a3 b4, Cadre b6 a4 b, Cadre b5 a5 b6, Cadre b7 a6 b5, Cadre a a7 b7) => a -> c
- cddddddddr :: (Cadre b2 a1 c, Cadre b1 a2 b2, Cadre b3 a3 b1, Cadre b a4 b3, Cadre b5 a5 b, Cadre b4 a6 b5, Cadre b6 a7 b4, Cadre a a8 b6) => a -> c
- caddddddddr :: (Cadre b c b1, Cadre b4 a1 b, Cadre b3 a2 b4, Cadre b5 a3 b3, Cadre b2 a4 b5, Cadre b7 a5 b2, Cadre b6 a6 b7, Cadre b8 a7 b6, Cadre a a8 b8) => a -> c
- cdddddddddr :: (Cadre b a1 c, Cadre b3 a2 b, Cadre b2 a3 b3, Cadre b4 a4 b2, Cadre b1 a5 b4, Cadre b6 a6 b1, Cadre b5 a7 b6, Cadre b7 a8 b5, Cadre a a9 b7) => a -> c
- cadddddddddr :: (Cadre b1 c b2, Cadre b a1 b1, Cadre b5 a2 b, Cadre b4 a3 b5, Cadre b6 a4 b4, Cadre b3 a5 b6, Cadre b8 a6 b3, Cadre b7 a7 b8, Cadre b9 a8 b7, Cadre a a9 b9) => a -> c
- cddddddddddr :: (Cadre b1 a1 c, Cadre b a2 b1, Cadre b4 a3 b, Cadre b3 a4 b4, Cadre b5 a5 b3, Cadre b2 a6 b5, Cadre b7 a7 b2, Cadre b6 a8 b7, Cadre b8 a9 b6, Cadre a a10 b8) => a -> c
- class (Cadre a car cdr, Cadre a' car' cdr') => CadreAssign a car cdr a' car' cdr' | a car' cdr' -> a' where
- setCadre :: (car -> car') -> (cdr -> cdr') -> a -> a'
- setCar :: CadreAssign a car cdr' a' car' cdr' => (car -> car') -> a -> a'
- setCdr :: CadreAssign a car' cdr a' car' cdr' => (cdr -> cdr') -> a -> a'
- setCaar :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1) => (car -> car') -> a1 -> a'1
- setCadr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a') => (car -> car') -> a1 -> a'1
- setCdar :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1) => (cdr -> cdr') -> a1 -> a'1
- setCddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a') => (cdr -> cdr') -> a1 -> a'1
- setCaaar :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 a1 cdr'2 a'2 a'1 cdr'2) => (car -> car') -> a2 -> a'2
- setCaadr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 car'1 a1 a'2 car'1 a'1) => (car -> car') -> a2 -> a'2
- setCadar :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 a1 cdr'1 a'2 a'1 cdr'1) => (car -> car') -> a2 -> a'2
- setCaddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1) => (car -> car') -> a2 -> a'2
- setCdaar :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 a1 cdr'2 a'2 a'1 cdr'2) => (cdr -> cdr') -> a2 -> a'2
- setCdadr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 car'1 a1 a'2 car'1 a'1) => (cdr -> cdr') -> a2 -> a'2
- setCddar :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 a1 cdr'1 a'2 a'1 cdr'1) => (cdr -> cdr') -> a2 -> a'2
- setCdddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1) => (cdr -> cdr') -> a2 -> a'2
- setCaaaar :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 a1 cdr'2 a'2 a'1 cdr'2, CadreAssign a3 a2 cdr'3 a'3 a'2 cdr'3) => (car -> car') -> a3 -> a'3
- setCaaadr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 a1 cdr'2 a'2 a'1 cdr'2, CadreAssign a3 car'1 a2 a'3 car'1 a'2) => (car -> car') -> a3 -> a'3
- setCaadar :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 car'1 a1 a'2 car'1 a'1, CadreAssign a3 a2 cdr'2 a'3 a'2 cdr'2) => (car -> car') -> a3 -> a'3
- setCaaddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 car'1 a1 a'2 car'1 a'1, CadreAssign a3 car'2 a2 a'3 car'2 a'2) => (car -> car') -> a3 -> a'3
- setCadaar :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 a1 cdr'1 a'2 a'1 cdr'1, CadreAssign a3 a2 cdr'2 a'3 a'2 cdr'2) => (car -> car') -> a3 -> a'3
- setCadadr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 a1 cdr'1 a'2 a'1 cdr'1, CadreAssign a3 car'2 a2 a'3 car'2 a'2) => (car -> car') -> a3 -> a'3
- setCaddar :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 a2 cdr'1 a'3 a'2 cdr'1) => (car -> car') -> a3 -> a'3
- setCadddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2) => (car -> car') -> a3 -> a'3
- setCdaaar :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 a1 cdr'2 a'2 a'1 cdr'2, CadreAssign a3 a2 cdr'3 a'3 a'2 cdr'3) => (cdr -> cdr') -> a3 -> a'3
- setCdaadr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 a1 cdr'2 a'2 a'1 cdr'2, CadreAssign a3 car'1 a2 a'3 car'1 a'2) => (cdr -> cdr') -> a3 -> a'3
- setCdadar :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 car'1 a1 a'2 car'1 a'1, CadreAssign a3 a2 cdr'2 a'3 a'2 cdr'2) => (cdr -> cdr') -> a3 -> a'3
- setCdaddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 car'1 a1 a'2 car'1 a'1, CadreAssign a3 car'2 a2 a'3 car'2 a'2) => (cdr -> cdr') -> a3 -> a'3
- setCddaar :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 a1 cdr'1 a'2 a'1 cdr'1, CadreAssign a3 a2 cdr'2 a'3 a'2 cdr'2) => (cdr -> cdr') -> a3 -> a'3
- setCddadr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 a1 cdr'1 a'2 a'1 cdr'1, CadreAssign a3 car'2 a2 a'3 car'2 a'2) => (cdr -> cdr') -> a3 -> a'3
- setCdddar :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 a2 cdr'1 a'3 a'2 cdr'1) => (cdr -> cdr') -> a3 -> a'3
- setCddddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2) => (cdr -> cdr') -> a3 -> a'3
- setCaddddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3) => (car -> car') -> a4 -> a'4
- setCdddddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3) => (cdr -> cdr') -> a4 -> a'4
- setCadddddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4) => (car -> car') -> a5 -> a'5
- setCddddddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4) => (cdr -> cdr') -> a5 -> a'5
- setCaddddddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5) => (car -> car') -> a6 -> a'6
- setCdddddddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5) => (cdr -> cdr') -> a6 -> a'6
- setCadddddddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5, CadreAssign a7 car'7 a6 a'7 car'7 a'6) => (car -> car') -> a7 -> a'7
- setCddddddddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5, CadreAssign a7 car'7 a6 a'7 car'7 a'6) => (cdr -> cdr') -> a7 -> a'7
- setCaddddddddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5, CadreAssign a7 car'7 a6 a'7 car'7 a'6, CadreAssign a8 car'8 a7 a'8 car'8 a'7) => (car -> car') -> a8 -> a'8
- setCdddddddddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5, CadreAssign a7 car'7 a6 a'7 car'7 a'6, CadreAssign a8 car'8 a7 a'8 car'8 a'7) => (cdr -> cdr') -> a8 -> a'8
- setCadddddddddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5, CadreAssign a7 car'7 a6 a'7 car'7 a'6, CadreAssign a8 car'8 a7 a'8 car'8 a'7, CadreAssign a9 car'9 a8 a'9 car'9 a'8) => (car -> car') -> a9 -> a'9
- setCddddddddddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5, CadreAssign a7 car'7 a6 a'7 car'7 a'6, CadreAssign a8 car'8 a7 a'8 car'8 a'7, CadreAssign a9 car'9 a8 a'9 car'9 a'8) => (cdr -> cdr') -> a9 -> a'9
- class PearShaped2 a a1 a2 | a -> a1 a2 where
- repair2 :: (PearShaped2 a a1 a2, PearShaped2 c a1 a2) => a -> c
- class PearShaped3 a a1 a2 a3 | a -> a1 a2 a3 where
- repair3 :: (PearShaped3 a a1 a2 a3, PearShaped3 c a1 a2 a3) => a -> c
- class PearShaped4 a a1 a2 a3 a4 | a -> a1 a2 a3 a4 where
- repair4 :: (PearShaped4 a a1 a2 a3 a4, PearShaped4 c a1 a2 a3 a4) => a -> c
- class PearShaped5 a a1 a2 a3 a4 a5 | a -> a1 a2 a3 a4 a5 where
- repair5 :: (PearShaped5 a a1 a2 a3 a4 a5, PearShaped5 c a1 a2 a3 a4 a5) => a -> c
- class PearShaped6 a a1 a2 a3 a4 a5 a6 | a -> a1 a2 a3 a4 a5 a6 where
- repair6 :: (PearShaped6 a a1 a2 a3 a4 a5 a6, PearShaped6 c a1 a2 a3 a4 a5 a6) => a -> c
- class PearShaped7 a a1 a2 a3 a4 a5 a6 a7 | a -> a1 a2 a3 a4 a5 a6 a7 where
- repair7 :: (PearShaped7 a a1 a2 a3 a4 a5 a6 a7, PearShaped7 c a1 a2 a3 a4 a5 a6 a7) => a -> c
- class PearShaped8 a a1 a2 a3 a4 a5 a6 a7 a8 | a -> a1 a2 a3 a4 a5 a6 a7 a8 where
- repair8 :: (PearShaped8 a a1 a2 a3 a4 a5 a6 a7 a8, PearShaped8 c a1 a2 a3 a4 a5 a6 a7 a8) => a -> c
- class PearShaped9 a a1 a2 a3 a4 a5 a6 a7 a8 a9 | a -> a1 a2 a3 a4 a5 a6 a7 a8 a9 where
- repair9 :: (PearShaped9 a a1 a2 a3 a4 a5 a6 a7 a8 a9, PearShaped9 c a1 a2 a3 a4 a5 a6 a7 a8 a9) => a -> c
- class PearShaped10 a a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 | a -> a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 where
- repair10 :: (PearShaped10 a a1 a2 a3 a4 a5 a6 a7 a8 a9 a10, PearShaped10 c a1 a2 a3 a4 a5 a6 a7 a8 a9 a10) => a -> c
Documentation
(<&>) :: (a -> b) -> (b -> c) -> a -> cSource
(<&>) = flip (.)
.
Hide this if you are importing <&>
from Control.Lens.
class Cadre a car cdr | a -> car cdr whereSource
Cadre [a] a [a] | |
Cadre (a1, a2) a1 a2 | |
Cadre (a1, a2, a3) a1 (a2, a3) | |
Cadre (a1, a2, a3, a4) a1 (a2, a3, a4) | |
Cadre (a1, a2, a3, a4, a5) a1 (a2, a3, a4, a5) | |
Cadre (a1, a2, a3, a4, a5, a6) a1 (a2, a3, a4, a5, a6) | |
Cadre (a1, a2, a3, a4, a5, a6, a7) a1 (a2, a3, a4, a5, a6, a7) | |
Cadre (a1, a2, a3, a4, a5, a6, a7, a8) a1 (a2, a3, a4, a5, a6, a7, a8) | |
Cadre (a1, a2, a3, a4, a5, a6, a7, a8, a9) a1 (a2, a3, a4, a5, a6, a7, a8, a9) | |
Cadre (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) a1 (a2, a3, a4, a5, a6, a7, a8, a9, a10) | |
Cadre (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) a1 (a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) | |
Cadre (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) a1 (a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) | |
Cadre (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) a1 (a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) | |
Cadre (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) a1 (a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) | |
Cadre (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) a1 (a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) | |
Cadre (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) a1 (a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) |
caddddr :: (Cadre b c b1, Cadre b3 a1 b, Cadre b2 a2 b3, Cadre b4 a3 b2, Cadre a a4 b4) => a -> cSource
cdddddr :: (Cadre b a1 c, Cadre b2 a2 b, Cadre b1 a3 b2, Cadre b3 a4 b1, Cadre a a5 b3) => a -> cSource
cadddddr :: (Cadre b1 c b2, Cadre b a1 b1, Cadre b4 a2 b, Cadre b3 a3 b4, Cadre b5 a4 b3, Cadre a a5 b5) => a -> cSource
cddddddr :: (Cadre b1 a1 c, Cadre b a2 b1, Cadre b3 a3 b, Cadre b2 a4 b3, Cadre b4 a5 b2, Cadre a a6 b4) => a -> cSource
caddddddr :: (Cadre b1 c b2, Cadre b3 a1 b1, Cadre b a2 b3, Cadre b5 a3 b, Cadre b4 a4 b5, Cadre b6 a5 b4, Cadre a a6 b6) => a -> cSource
cdddddddr :: (Cadre b1 a1 c, Cadre b2 a2 b1, Cadre b a3 b2, Cadre b4 a4 b, Cadre b3 a5 b4, Cadre b5 a6 b3, Cadre a a7 b5) => a -> cSource
cadddddddr :: (Cadre b2 c b3, Cadre b1 a1 b2, Cadre b4 a2 b1, Cadre b a3 b4, Cadre b6 a4 b, Cadre b5 a5 b6, Cadre b7 a6 b5, Cadre a a7 b7) => a -> cSource
cddddddddr :: (Cadre b2 a1 c, Cadre b1 a2 b2, Cadre b3 a3 b1, Cadre b a4 b3, Cadre b5 a5 b, Cadre b4 a6 b5, Cadre b6 a7 b4, Cadre a a8 b6) => a -> cSource
caddddddddr :: (Cadre b c b1, Cadre b4 a1 b, Cadre b3 a2 b4, Cadre b5 a3 b3, Cadre b2 a4 b5, Cadre b7 a5 b2, Cadre b6 a6 b7, Cadre b8 a7 b6, Cadre a a8 b8) => a -> cSource
cdddddddddr :: (Cadre b a1 c, Cadre b3 a2 b, Cadre b2 a3 b3, Cadre b4 a4 b2, Cadre b1 a5 b4, Cadre b6 a6 b1, Cadre b5 a7 b6, Cadre b7 a8 b5, Cadre a a9 b7) => a -> cSource
cadddddddddr :: (Cadre b1 c b2, Cadre b a1 b1, Cadre b5 a2 b, Cadre b4 a3 b5, Cadre b6 a4 b4, Cadre b3 a5 b6, Cadre b8 a6 b3, Cadre b7 a7 b8, Cadre b9 a8 b7, Cadre a a9 b9) => a -> cSource
cddddddddddr :: (Cadre b1 a1 c, Cadre b a2 b1, Cadre b4 a3 b, Cadre b3 a4 b4, Cadre b5 a5 b3, Cadre b2 a6 b5, Cadre b7 a7 b2, Cadre b6 a8 b7, Cadre b8 a9 b6, Cadre a a10 b8) => a -> cSource
class (Cadre a car cdr, Cadre a' car' cdr') => CadreAssign a car cdr a' car' cdr' | a car' cdr' -> a' whereSource
CadreAssign [a] a [a] [a] a [a] | |
CadreAssign (a1, a2) a1 a2 (b1, b2) b1 b2 | |
CadreAssign (a1, a2, a3) a1 (a2, a3) (b1, b2, b3) b1 (b2, b3) | |
CadreAssign (a1, a2, a3, a4) a1 (a2, a3, a4) (b1, b2, b3, b4) b1 (b2, b3, b4) | |
CadreAssign (a1, a2, a3, a4, a5) a1 (a2, a3, a4, a5) (b1, b2, b3, b4, b5) b1 (b2, b3, b4, b5) | |
CadreAssign (a1, a2, a3, a4, a5, a6) a1 (a2, a3, a4, a5, a6) (b1, b2, b3, b4, b5, b6) b1 (b2, b3, b4, b5, b6) | |
CadreAssign (a1, a2, a3, a4, a5, a6, a7) a1 (a2, a3, a4, a5, a6, a7) (b1, b2, b3, b4, b5, b6, b7) b1 (b2, b3, b4, b5, b6, b7) | |
CadreAssign (a1, a2, a3, a4, a5, a6, a7, a8) a1 (a2, a3, a4, a5, a6, a7, a8) (b1, b2, b3, b4, b5, b6, b7, b8) b1 (b2, b3, b4, b5, b6, b7, b8) | |
CadreAssign (a1, a2, a3, a4, a5, a6, a7, a8, a9) a1 (a2, a3, a4, a5, a6, a7, a8, a9) (b1, b2, b3, b4, b5, b6, b7, b8, b9) b1 (b2, b3, b4, b5, b6, b7, b8, b9) | |
CadreAssign (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) a1 (a2, a3, a4, a5, a6, a7, a8, a9, a10) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10) b1 (b2, b3, b4, b5, b6, b7, b8, b9, b10) | |
CadreAssign (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) a1 (a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11) b1 (b2, b3, b4, b5, b6, b7, b8, b9, b10, b11) | |
CadreAssign (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) a1 (a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12) b1 (b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12) | |
CadreAssign (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) a1 (a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) b1 (b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) | |
CadreAssign (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) a1 (a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14) b1 (b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14) | |
CadreAssign (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) a1 (a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15) b1 (b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15) | |
CadreAssign (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) a1 (a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16) b1 (b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16) |
setCar :: CadreAssign a car cdr' a' car' cdr' => (car -> car') -> a -> a'Source
setCdr :: CadreAssign a car' cdr a' car' cdr' => (cdr -> cdr') -> a -> a'Source
setCaar :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1) => (car -> car') -> a1 -> a'1Source
setCadr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a') => (car -> car') -> a1 -> a'1Source
setCdar :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1) => (cdr -> cdr') -> a1 -> a'1Source
setCddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a') => (cdr -> cdr') -> a1 -> a'1Source
setCaaar :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 a1 cdr'2 a'2 a'1 cdr'2) => (car -> car') -> a2 -> a'2Source
setCaadr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 car'1 a1 a'2 car'1 a'1) => (car -> car') -> a2 -> a'2Source
setCadar :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 a1 cdr'1 a'2 a'1 cdr'1) => (car -> car') -> a2 -> a'2Source
setCaddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1) => (car -> car') -> a2 -> a'2Source
setCdaar :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 a1 cdr'2 a'2 a'1 cdr'2) => (cdr -> cdr') -> a2 -> a'2Source
setCdadr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 car'1 a1 a'2 car'1 a'1) => (cdr -> cdr') -> a2 -> a'2Source
setCddar :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 a1 cdr'1 a'2 a'1 cdr'1) => (cdr -> cdr') -> a2 -> a'2Source
setCdddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1) => (cdr -> cdr') -> a2 -> a'2Source
setCaaaar :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 a1 cdr'2 a'2 a'1 cdr'2, CadreAssign a3 a2 cdr'3 a'3 a'2 cdr'3) => (car -> car') -> a3 -> a'3Source
setCaaadr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 a1 cdr'2 a'2 a'1 cdr'2, CadreAssign a3 car'1 a2 a'3 car'1 a'2) => (car -> car') -> a3 -> a'3Source
setCaadar :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 car'1 a1 a'2 car'1 a'1, CadreAssign a3 a2 cdr'2 a'3 a'2 cdr'2) => (car -> car') -> a3 -> a'3Source
setCaaddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 car'1 a1 a'2 car'1 a'1, CadreAssign a3 car'2 a2 a'3 car'2 a'2) => (car -> car') -> a3 -> a'3Source
setCadaar :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 a1 cdr'1 a'2 a'1 cdr'1, CadreAssign a3 a2 cdr'2 a'3 a'2 cdr'2) => (car -> car') -> a3 -> a'3Source
setCadadr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 a1 cdr'1 a'2 a'1 cdr'1, CadreAssign a3 car'2 a2 a'3 car'2 a'2) => (car -> car') -> a3 -> a'3Source
setCaddar :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 a2 cdr'1 a'3 a'2 cdr'1) => (car -> car') -> a3 -> a'3Source
setCadddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2) => (car -> car') -> a3 -> a'3Source
setCdaaar :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 a1 cdr'2 a'2 a'1 cdr'2, CadreAssign a3 a2 cdr'3 a'3 a'2 cdr'3) => (cdr -> cdr') -> a3 -> a'3Source
setCdaadr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 a1 cdr'2 a'2 a'1 cdr'2, CadreAssign a3 car'1 a2 a'3 car'1 a'2) => (cdr -> cdr') -> a3 -> a'3Source
setCdadar :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 car'1 a1 a'2 car'1 a'1, CadreAssign a3 a2 cdr'2 a'3 a'2 cdr'2) => (cdr -> cdr') -> a3 -> a'3Source
setCdaddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 a cdr'1 a'1 a' cdr'1, CadreAssign a2 car'1 a1 a'2 car'1 a'1, CadreAssign a3 car'2 a2 a'3 car'2 a'2) => (cdr -> cdr') -> a3 -> a'3Source
setCddaar :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 a1 cdr'1 a'2 a'1 cdr'1, CadreAssign a3 a2 cdr'2 a'3 a'2 cdr'2) => (cdr -> cdr') -> a3 -> a'3Source
setCddadr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 a1 cdr'1 a'2 a'1 cdr'1, CadreAssign a3 car'2 a2 a'3 car'2 a'2) => (cdr -> cdr') -> a3 -> a'3Source
setCdddar :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 a2 cdr'1 a'3 a'2 cdr'1) => (cdr -> cdr') -> a3 -> a'3Source
setCddddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2) => (cdr -> cdr') -> a3 -> a'3Source
setCaddddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3) => (car -> car') -> a4 -> a'4Source
setCdddddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3) => (cdr -> cdr') -> a4 -> a'4Source
setCadddddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4) => (car -> car') -> a5 -> a'5Source
setCddddddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4) => (cdr -> cdr') -> a5 -> a'5Source
setCaddddddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5) => (car -> car') -> a6 -> a'6Source
setCdddddddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5) => (cdr -> cdr') -> a6 -> a'6Source
setCadddddddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5, CadreAssign a7 car'7 a6 a'7 car'7 a'6) => (car -> car') -> a7 -> a'7Source
setCddddddddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5, CadreAssign a7 car'7 a6 a'7 car'7 a'6) => (cdr -> cdr') -> a7 -> a'7Source
setCaddddddddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5, CadreAssign a7 car'7 a6 a'7 car'7 a'6, CadreAssign a8 car'8 a7 a'8 car'8 a'7) => (car -> car') -> a8 -> a'8Source
setCdddddddddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5, CadreAssign a7 car'7 a6 a'7 car'7 a'6, CadreAssign a8 car'8 a7 a'8 car'8 a'7) => (cdr -> cdr') -> a8 -> a'8Source
setCadddddddddr :: (CadreAssign a car cdr' a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5, CadreAssign a7 car'7 a6 a'7 car'7 a'6, CadreAssign a8 car'8 a7 a'8 car'8 a'7, CadreAssign a9 car'9 a8 a'9 car'9 a'8) => (car -> car') -> a9 -> a'9Source
setCddddddddddr :: (CadreAssign a car' cdr a' car' cdr', CadreAssign a1 car'1 a a'1 car'1 a', CadreAssign a2 car'2 a1 a'2 car'2 a'1, CadreAssign a3 car'3 a2 a'3 car'3 a'2, CadreAssign a4 car'4 a3 a'4 car'4 a'3, CadreAssign a5 car'5 a4 a'5 car'5 a'4, CadreAssign a6 car'6 a5 a'6 car'6 a'5, CadreAssign a7 car'7 a6 a'7 car'7 a'6, CadreAssign a8 car'8 a7 a'8 car'8 a'7, CadreAssign a9 car'9 a8 a'9 car'9 a'8) => (cdr -> cdr') -> a9 -> a'9Source
class PearShaped2 a a1 a2 | a -> a1 a2 whereSource
Things that can be reshaped into cons pairs.
PearShaped2 [a] a a | |
PearShaped2 (a1, a2) a1 a2 |
repair2 :: (PearShaped2 a a1 a2, PearShaped2 c a1 a2) => a -> cSource
class PearShaped3 a a1 a2 a3 | a -> a1 a2 a3 whereSource
PearShaped3 [a] a a a | |
PearShaped2 a a2 a3 => PearShaped3 (a1, a) a1 a2 a3 | |
PearShaped3 (a1, a2, a3) a1 a2 a3 |
repair3 :: (PearShaped3 a a1 a2 a3, PearShaped3 c a1 a2 a3) => a -> cSource
class PearShaped4 a a1 a2 a3 a4 | a -> a1 a2 a3 a4 whereSource
PearShaped4 [a] a a a a | |
PearShaped3 a a2 a3 a4 => PearShaped4 (a1, a) a1 a2 a3 a4 | |
PearShaped2 a a3 a4 => PearShaped4 (a1, a2, a) a1 a2 a3 a4 | |
PearShaped4 (a1, a2, a3, a4) a1 a2 a3 a4 |
repair4 :: (PearShaped4 a a1 a2 a3 a4, PearShaped4 c a1 a2 a3 a4) => a -> cSource
class PearShaped5 a a1 a2 a3 a4 a5 | a -> a1 a2 a3 a4 a5 whereSource
PearShaped5 [a] a a a a a | |
PearShaped4 a a2 a3 a4 a5 => PearShaped5 (a1, a) a1 a2 a3 a4 a5 | |
PearShaped3 a a3 a4 a5 => PearShaped5 (a1, a2, a) a1 a2 a3 a4 a5 | |
PearShaped2 a a4 a5 => PearShaped5 (a1, a2, a3, a) a1 a2 a3 a4 a5 | |
PearShaped5 (a1, a2, a3, a4, a5) a1 a2 a3 a4 a5 |
repair5 :: (PearShaped5 a a1 a2 a3 a4 a5, PearShaped5 c a1 a2 a3 a4 a5) => a -> cSource
class PearShaped6 a a1 a2 a3 a4 a5 a6 | a -> a1 a2 a3 a4 a5 a6 whereSource
PearShaped6 [a] a a a a a a | |
PearShaped5 a a2 a3 a4 a5 a6 => PearShaped6 (a1, a) a1 a2 a3 a4 a5 a6 | |
PearShaped4 a a3 a4 a5 a6 => PearShaped6 (a1, a2, a) a1 a2 a3 a4 a5 a6 | |
PearShaped3 a a4 a5 a6 => PearShaped6 (a1, a2, a3, a) a1 a2 a3 a4 a5 a6 | |
PearShaped2 a a5 a6 => PearShaped6 (a1, a2, a3, a4, a) a1 a2 a3 a4 a5 a6 | |
PearShaped6 (a1, a2, a3, a4, a5, a6) a1 a2 a3 a4 a5 a6 |
repair6 :: (PearShaped6 a a1 a2 a3 a4 a5 a6, PearShaped6 c a1 a2 a3 a4 a5 a6) => a -> cSource
class PearShaped7 a a1 a2 a3 a4 a5 a6 a7 | a -> a1 a2 a3 a4 a5 a6 a7 whereSource
PearShaped7 [a] a a a a a a a | |
PearShaped6 a a2 a3 a4 a5 a6 a7 => PearShaped7 (a1, a) a1 a2 a3 a4 a5 a6 a7 | |
PearShaped5 a a3 a4 a5 a6 a7 => PearShaped7 (a1, a2, a) a1 a2 a3 a4 a5 a6 a7 | |
PearShaped4 a a4 a5 a6 a7 => PearShaped7 (a1, a2, a3, a) a1 a2 a3 a4 a5 a6 a7 | |
PearShaped3 a a5 a6 a7 => PearShaped7 (a1, a2, a3, a4, a) a1 a2 a3 a4 a5 a6 a7 | |
PearShaped2 a a6 a7 => PearShaped7 (a1, a2, a3, a4, a5, a) a1 a2 a3 a4 a5 a6 a7 | |
PearShaped7 (a1, a2, a3, a4, a5, a6, a7) a1 a2 a3 a4 a5 a6 a7 |
repair7 :: (PearShaped7 a a1 a2 a3 a4 a5 a6 a7, PearShaped7 c a1 a2 a3 a4 a5 a6 a7) => a -> cSource
class PearShaped8 a a1 a2 a3 a4 a5 a6 a7 a8 | a -> a1 a2 a3 a4 a5 a6 a7 a8 whereSource
reap8 :: a -> (a1, (a2, (a3, (a4, (a5, (a6, (a7, a8)))))))Source
pare8 :: (a1, (a2, (a3, (a4, (a5, (a6, (a7, a8))))))) -> aSource
PearShaped8 [a] a a a a a a a a | |
PearShaped7 a a2 a3 a4 a5 a6 a7 a8 => PearShaped8 (a1, a) a1 a2 a3 a4 a5 a6 a7 a8 | |
PearShaped6 a a3 a4 a5 a6 a7 a8 => PearShaped8 (a1, a2, a) a1 a2 a3 a4 a5 a6 a7 a8 | |
PearShaped5 a a4 a5 a6 a7 a8 => PearShaped8 (a1, a2, a3, a) a1 a2 a3 a4 a5 a6 a7 a8 | |
PearShaped4 a a5 a6 a7 a8 => PearShaped8 (a1, a2, a3, a4, a) a1 a2 a3 a4 a5 a6 a7 a8 | |
PearShaped3 a a6 a7 a8 => PearShaped8 (a1, a2, a3, a4, a5, a) a1 a2 a3 a4 a5 a6 a7 a8 | |
PearShaped2 a a7 a8 => PearShaped8 (a1, a2, a3, a4, a5, a6, a) a1 a2 a3 a4 a5 a6 a7 a8 | |
PearShaped8 (a1, a2, a3, a4, a5, a6, a7, a8) a1 a2 a3 a4 a5 a6 a7 a8 |
repair8 :: (PearShaped8 a a1 a2 a3 a4 a5 a6 a7 a8, PearShaped8 c a1 a2 a3 a4 a5 a6 a7 a8) => a -> cSource
class PearShaped9 a a1 a2 a3 a4 a5 a6 a7 a8 a9 | a -> a1 a2 a3 a4 a5 a6 a7 a8 a9 whereSource
reap9 :: a -> (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, a9))))))))Source
pare9 :: (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, a9)))))))) -> aSource
PearShaped9 [a] a a a a a a a a a | |
PearShaped8 a a2 a3 a4 a5 a6 a7 a8 a9 => PearShaped9 (a1, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 | |
PearShaped7 a a3 a4 a5 a6 a7 a8 a9 => PearShaped9 (a1, a2, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 | |
PearShaped6 a a4 a5 a6 a7 a8 a9 => PearShaped9 (a1, a2, a3, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 | |
PearShaped5 a a5 a6 a7 a8 a9 => PearShaped9 (a1, a2, a3, a4, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 | |
PearShaped4 a a6 a7 a8 a9 => PearShaped9 (a1, a2, a3, a4, a5, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 | |
PearShaped3 a a7 a8 a9 => PearShaped9 (a1, a2, a3, a4, a5, a6, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 | |
PearShaped2 a a8 a9 => PearShaped9 (a1, a2, a3, a4, a5, a6, a7, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 | |
PearShaped9 (a1, a2, a3, a4, a5, a6, a7, a8, a9) a1 a2 a3 a4 a5 a6 a7 a8 a9 |
repair9 :: (PearShaped9 a a1 a2 a3 a4 a5 a6 a7 a8 a9, PearShaped9 c a1 a2 a3 a4 a5 a6 a7 a8 a9) => a -> cSource
class PearShaped10 a a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 | a -> a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 whereSource
reap10 :: a -> (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, a10)))))))))Source
pare10 :: (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, a10))))))))) -> aSource
PearShaped10 [a] a a a a a a a a a a | |
PearShaped9 a a2 a3 a4 a5 a6 a7 a8 a9 a10 => PearShaped10 (a1, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 | |
PearShaped8 a a3 a4 a5 a6 a7 a8 a9 a10 => PearShaped10 (a1, a2, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 | |
PearShaped7 a a4 a5 a6 a7 a8 a9 a10 => PearShaped10 (a1, a2, a3, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 | |
PearShaped6 a a5 a6 a7 a8 a9 a10 => PearShaped10 (a1, a2, a3, a4, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 | |
PearShaped5 a a6 a7 a8 a9 a10 => PearShaped10 (a1, a2, a3, a4, a5, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 | |
PearShaped4 a a7 a8 a9 a10 => PearShaped10 (a1, a2, a3, a4, a5, a6, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 | |
PearShaped3 a a8 a9 a10 => PearShaped10 (a1, a2, a3, a4, a5, a6, a7, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 | |
PearShaped2 a a9 a10 => PearShaped10 (a1, a2, a3, a4, a5, a6, a7, a8, a) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 | |
PearShaped10 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 |
repair10 :: (PearShaped10 a a1 a2 a3 a4 a5 a6 a7 a8 a9 a10, PearShaped10 c a1 a2 a3 a4 a5 a6 a7 a8 a9 a10) => a -> cSource