adaptive-tuple 0.1.1 → 0.2.0
raw patch · 6 files changed
+152/−132 lines, 6 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Data.AdaptiveTuple: instance (Eq a) => Eq (ListTuple s a)
- Data.AdaptiveTuple: instance (Nat s) => AdaptiveTuple ListTuple s
- Data.AdaptiveTuple: instance (Nat s) => Applicative (ListTuple s)
- Data.AdaptiveTuple: instance (Show a, NatI s) => Show (ListTuple s a)
- Data.AdaptiveTuple: instance AdaptiveTuple ATuple0 D0
- Data.AdaptiveTuple: instance Applicative (ATuple0 D0)
- Data.AdaptiveTuple: instance Eq (ATuple0 s el)
- Data.AdaptiveTuple: instance Functor (ATuple0 D0)
- Data.AdaptiveTuple: instance Functor (ListTuple s)
- Data.AdaptiveTuple: instance Show (ATuple0 s el)
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[aj9R], Data a[aj9S]) => Data (ATuple1 s[aj9R] a[aj9S])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[aj9T], Data a[aj9U]) => Data (ATuple2 s[aj9T] a[aj9U])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[aj9V], Data a[aj9W]) => Data (ATuple3 s[aj9V] a[aj9W])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[aj9X], Data a[aj9Y]) => Data (ATuple4 s[aj9X] a[aj9Y])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[aj9Z], Data a[aja0]) => Data (ATuple5 s[aj9Z] a[aja0])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[aja1], Data a[aja2]) => Data (ATuple6 s[aja1] a[aja2])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[aja3], Data a[aja4]) => Data (ATuple7 s[aja3] a[aja4])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[aja5], Data a[aja6]) => Data (ATuple8 s[aja5] a[aja6])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[aja7], Data a[aja8]) => Data (ATuple9 s[aja7] a[aja8])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[aja9], Data a[ajaa]) => Data (ATuple10 s[aja9] a[ajaa])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[ajab], Data a[ajac]) => Data (ATuple11 s[ajab] a[ajac])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[ajad], Data a[ajae]) => Data (ATuple12 s[ajad] a[ajae])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[ajaf], Data a[ajag]) => Data (ATuple13 s[ajaf] a[ajag])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[ajah], Data a[ajai]) => Data (ATuple14 s[ajah] a[ajai])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[ajaj], Data a[ajak]) => Data (ATuple15 s[ajaj] a[ajak])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[ajal], Data a[ajam]) => Data (ATuple16 s[ajal] a[ajam])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[ajan], Data a[ajao]) => Data (ATuple17 s[ajan] a[ajao])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[ajap], Data a[ajaq]) => Data (ATuple18 s[ajap] a[ajaq])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[ajar], Data a[ajas]) => Data (ATuple19 s[ajar] a[ajas])
- Data.AdaptiveTuple.Reps.Lazy: instance (Data s[ajat], Data a[ajau]) => Data (ATuple20 s[ajat] a[ajau])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[aj9S]) => Eq (ATuple1 s[aj9R] a[aj9S])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[aj9U]) => Eq (ATuple2 s[aj9T] a[aj9U])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[aj9W]) => Eq (ATuple3 s[aj9V] a[aj9W])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[aj9Y]) => Eq (ATuple4 s[aj9X] a[aj9Y])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[aja0]) => Eq (ATuple5 s[aj9Z] a[aja0])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[aja2]) => Eq (ATuple6 s[aja1] a[aja2])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[aja4]) => Eq (ATuple7 s[aja3] a[aja4])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[aja6]) => Eq (ATuple8 s[aja5] a[aja6])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[aja8]) => Eq (ATuple9 s[aja7] a[aja8])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[ajaa]) => Eq (ATuple10 s[aja9] a[ajaa])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[ajac]) => Eq (ATuple11 s[ajab] a[ajac])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[ajae]) => Eq (ATuple12 s[ajad] a[ajae])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[ajag]) => Eq (ATuple13 s[ajaf] a[ajag])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[ajai]) => Eq (ATuple14 s[ajah] a[ajai])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[ajak]) => Eq (ATuple15 s[ajaj] a[ajak])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[ajam]) => Eq (ATuple16 s[ajal] a[ajam])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[ajao]) => Eq (ATuple17 s[ajan] a[ajao])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[ajaq]) => Eq (ATuple18 s[ajap] a[ajaq])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[ajas]) => Eq (ATuple19 s[ajar] a[ajas])
- Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[ajau]) => Eq (ATuple20 s[ajat] a[ajau])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[aj9S]) => Show (ATuple1 s[aj9R] a[aj9S])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[aj9U]) => Show (ATuple2 s[aj9T] a[aj9U])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[aj9W]) => Show (ATuple3 s[aj9V] a[aj9W])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[aj9Y]) => Show (ATuple4 s[aj9X] a[aj9Y])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[aja0]) => Show (ATuple5 s[aj9Z] a[aja0])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[aja2]) => Show (ATuple6 s[aja1] a[aja2])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[aja4]) => Show (ATuple7 s[aja3] a[aja4])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[aja6]) => Show (ATuple8 s[aja5] a[aja6])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[aja8]) => Show (ATuple9 s[aja7] a[aja8])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[ajaa]) => Show (ATuple10 s[aja9] a[ajaa])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[ajac]) => Show (ATuple11 s[ajab] a[ajac])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[ajae]) => Show (ATuple12 s[ajad] a[ajae])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[ajag]) => Show (ATuple13 s[ajaf] a[ajag])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[ajai]) => Show (ATuple14 s[ajah] a[ajai])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[ajak]) => Show (ATuple15 s[ajaj] a[ajak])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[ajam]) => Show (ATuple16 s[ajal] a[ajam])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[ajao]) => Show (ATuple17 s[ajan] a[ajao])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[ajaq]) => Show (ATuple18 s[ajap] a[ajaq])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[ajas]) => Show (ATuple19 s[ajar] a[ajas])
- Data.AdaptiveTuple.Reps.Lazy: instance (Show a[ajau]) => Show (ATuple20 s[ajat] a[ajau])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hB], Data a[a17hC]) => Data (ATuple11 s[a17hB] a[a17hC])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hD], Data a[a17hE]) => Data (ATuple12 s[a17hD] a[a17hE])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hF], Data a[a17hG]) => Data (ATuple13 s[a17hF] a[a17hG])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hH], Data a[a17hI]) => Data (ATuple14 s[a17hH] a[a17hI])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hJ], Data a[a17hK]) => Data (ATuple15 s[a17hJ] a[a17hK])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hL], Data a[a17hM]) => Data (ATuple16 s[a17hL] a[a17hM])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hN], Data a[a17hO]) => Data (ATuple17 s[a17hN] a[a17hO])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hP], Data a[a17hQ]) => Data (ATuple18 s[a17hP] a[a17hQ])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hR], Data a[a17hS]) => Data (ATuple19 s[a17hR] a[a17hS])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hT], Data a[a17hU]) => Data (ATuple20 s[a17hT] a[a17hU])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hh], Data a[a17hi]) => Data (ATuple1 s[a17hh] a[a17hi])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hj], Data a[a17hk]) => Data (ATuple2 s[a17hj] a[a17hk])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hl], Data a[a17hm]) => Data (ATuple3 s[a17hl] a[a17hm])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hn], Data a[a17ho]) => Data (ATuple4 s[a17hn] a[a17ho])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hp], Data a[a17hq]) => Data (ATuple5 s[a17hp] a[a17hq])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hr], Data a[a17hs]) => Data (ATuple6 s[a17hr] a[a17hs])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17ht], Data a[a17hu]) => Data (ATuple7 s[a17ht] a[a17hu])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hv], Data a[a17hw]) => Data (ATuple8 s[a17hv] a[a17hw])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hx], Data a[a17hy]) => Data (ATuple9 s[a17hx] a[a17hy])
- Data.AdaptiveTuple.Reps.Strict: instance (Data s[a17hz], Data a[a17hA]) => Data (ATuple10 s[a17hz] a[a17hA])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hA]) => Eq (ATuple10 s[a17hz] a[a17hA])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hC]) => Eq (ATuple11 s[a17hB] a[a17hC])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hE]) => Eq (ATuple12 s[a17hD] a[a17hE])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hG]) => Eq (ATuple13 s[a17hF] a[a17hG])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hI]) => Eq (ATuple14 s[a17hH] a[a17hI])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hK]) => Eq (ATuple15 s[a17hJ] a[a17hK])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hM]) => Eq (ATuple16 s[a17hL] a[a17hM])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hO]) => Eq (ATuple17 s[a17hN] a[a17hO])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hQ]) => Eq (ATuple18 s[a17hP] a[a17hQ])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hS]) => Eq (ATuple19 s[a17hR] a[a17hS])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hU]) => Eq (ATuple20 s[a17hT] a[a17hU])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hi]) => Eq (ATuple1 s[a17hh] a[a17hi])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hk]) => Eq (ATuple2 s[a17hj] a[a17hk])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hm]) => Eq (ATuple3 s[a17hl] a[a17hm])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17ho]) => Eq (ATuple4 s[a17hn] a[a17ho])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hq]) => Eq (ATuple5 s[a17hp] a[a17hq])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hs]) => Eq (ATuple6 s[a17hr] a[a17hs])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hu]) => Eq (ATuple7 s[a17ht] a[a17hu])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hw]) => Eq (ATuple8 s[a17hv] a[a17hw])
- Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a17hy]) => Eq (ATuple9 s[a17hx] a[a17hy])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hA]) => Show (ATuple10 s[a17hz] a[a17hA])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hC]) => Show (ATuple11 s[a17hB] a[a17hC])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hE]) => Show (ATuple12 s[a17hD] a[a17hE])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hG]) => Show (ATuple13 s[a17hF] a[a17hG])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hI]) => Show (ATuple14 s[a17hH] a[a17hI])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hK]) => Show (ATuple15 s[a17hJ] a[a17hK])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hM]) => Show (ATuple16 s[a17hL] a[a17hM])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hO]) => Show (ATuple17 s[a17hN] a[a17hO])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hQ]) => Show (ATuple18 s[a17hP] a[a17hQ])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hS]) => Show (ATuple19 s[a17hR] a[a17hS])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hU]) => Show (ATuple20 s[a17hT] a[a17hU])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hi]) => Show (ATuple1 s[a17hh] a[a17hi])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hk]) => Show (ATuple2 s[a17hj] a[a17hk])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hm]) => Show (ATuple3 s[a17hl] a[a17hm])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17ho]) => Show (ATuple4 s[a17hn] a[a17ho])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hq]) => Show (ATuple5 s[a17hp] a[a17hq])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hs]) => Show (ATuple6 s[a17hr] a[a17hs])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hu]) => Show (ATuple7 s[a17ht] a[a17hu])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hw]) => Show (ATuple8 s[a17hv] a[a17hw])
- Data.AdaptiveTuple.Reps.Strict: instance (Show a[a17hy]) => Show (ATuple9 s[a17hx] a[a17hy])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5A], Data a[am5B]) => Data (ATuple12 s[am5A] a[am5B])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5C], Data a[am5D]) => Data (ATuple13 s[am5C] a[am5D])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5E], Data a[am5F]) => Data (ATuple14 s[am5E] a[am5F])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5G], Data a[am5H]) => Data (ATuple15 s[am5G] a[am5H])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5I], Data a[am5J]) => Data (ATuple16 s[am5I] a[am5J])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5K], Data a[am5L]) => Data (ATuple17 s[am5K] a[am5L])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5M], Data a[am5N]) => Data (ATuple18 s[am5M] a[am5N])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5O], Data a[am5P]) => Data (ATuple19 s[am5O] a[am5P])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5Q], Data a[am5R]) => Data (ATuple20 s[am5Q] a[am5R])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5e], Data a[am5f]) => Data (ATuple1 s[am5e] a[am5f])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5g], Data a[am5h]) => Data (ATuple2 s[am5g] a[am5h])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5i], Data a[am5j]) => Data (ATuple3 s[am5i] a[am5j])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5k], Data a[am5l]) => Data (ATuple4 s[am5k] a[am5l])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5m], Data a[am5n]) => Data (ATuple5 s[am5m] a[am5n])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5o], Data a[am5p]) => Data (ATuple6 s[am5o] a[am5p])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5q], Data a[am5r]) => Data (ATuple7 s[am5q] a[am5r])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5s], Data a[am5t]) => Data (ATuple8 s[am5s] a[am5t])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5u], Data a[am5v]) => Data (ATuple9 s[am5u] a[am5v])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5w], Data a[am5x]) => Data (ATuple10 s[am5w] a[am5x])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Data s[am5y], Data a[am5z]) => Data (ATuple11 s[am5y] a[am5z])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5B]) => Eq (ATuple12 s[am5A] a[am5B])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5D]) => Eq (ATuple13 s[am5C] a[am5D])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5F]) => Eq (ATuple14 s[am5E] a[am5F])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5H]) => Eq (ATuple15 s[am5G] a[am5H])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5J]) => Eq (ATuple16 s[am5I] a[am5J])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5L]) => Eq (ATuple17 s[am5K] a[am5L])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5N]) => Eq (ATuple18 s[am5M] a[am5N])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5P]) => Eq (ATuple19 s[am5O] a[am5P])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5R]) => Eq (ATuple20 s[am5Q] a[am5R])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5f]) => Eq (ATuple1 s[am5e] a[am5f])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5h]) => Eq (ATuple2 s[am5g] a[am5h])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5j]) => Eq (ATuple3 s[am5i] a[am5j])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5l]) => Eq (ATuple4 s[am5k] a[am5l])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5n]) => Eq (ATuple5 s[am5m] a[am5n])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5p]) => Eq (ATuple6 s[am5o] a[am5p])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5r]) => Eq (ATuple7 s[am5q] a[am5r])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5t]) => Eq (ATuple8 s[am5s] a[am5t])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5v]) => Eq (ATuple9 s[am5u] a[am5v])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5x]) => Eq (ATuple10 s[am5w] a[am5x])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Eq a[am5z]) => Eq (ATuple11 s[am5y] a[am5z])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5B]) => Show (ATuple12 s[am5A] a[am5B])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5D]) => Show (ATuple13 s[am5C] a[am5D])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5F]) => Show (ATuple14 s[am5E] a[am5F])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5H]) => Show (ATuple15 s[am5G] a[am5H])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5J]) => Show (ATuple16 s[am5I] a[am5J])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5L]) => Show (ATuple17 s[am5K] a[am5L])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5N]) => Show (ATuple18 s[am5M] a[am5N])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5P]) => Show (ATuple19 s[am5O] a[am5P])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5R]) => Show (ATuple20 s[am5Q] a[am5R])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5f]) => Show (ATuple1 s[am5e] a[am5f])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5h]) => Show (ATuple2 s[am5g] a[am5h])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5j]) => Show (ATuple3 s[am5i] a[am5j])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5l]) => Show (ATuple4 s[am5k] a[am5l])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5n]) => Show (ATuple5 s[am5m] a[am5n])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5p]) => Show (ATuple6 s[am5o] a[am5p])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5r]) => Show (ATuple7 s[am5q] a[am5r])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5t]) => Show (ATuple8 s[am5s] a[am5t])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5v]) => Show (ATuple9 s[am5u] a[am5v])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5x]) => Show (ATuple10 s[am5w] a[am5x])
+ Data.AdaptiveTuple.Reps.Lazy: instance (Show a[am5z]) => Show (ATuple11 s[am5y] a[am5z])
+ Data.AdaptiveTuple.Reps.Lazy: reifyTuple12 :: Int -> [el[asKE]] -> (forall c[asKG] s[asKH]. (AdaptiveTuple c[asKG] s[asKH], Nat s[asKH]) => c[asKG] s[asKH] el[asKE] -> r[asKF]) -> r[asKF]
+ Data.AdaptiveTuple.Reps.Lazy: reifyTuple16 :: Int -> [el[asRr]] -> (forall c[asRt] s[asRu]. (AdaptiveTuple c[asRt] s[asRu], Nat s[asRu]) => c[asRt] s[asRu] el[asRr] -> r[asRs]) -> r[asRs]
+ Data.AdaptiveTuple.Reps.Lazy: reifyTuple20 :: Int -> [el[asZY]] -> (forall c[at00] s[at01]. (AdaptiveTuple c[at00] s[at01], Nat s[at01]) => c[at00] s[at01] el[asZY] -> r[asZZ]) -> r[asZZ]
+ Data.AdaptiveTuple.Reps.Lazy: reifyTuple4 :: Int -> [el[asCi]] -> (forall c[asCk] s[asCl]. (AdaptiveTuple c[asCk] s[asCl], Nat s[asCl]) => c[asCk] s[asCl] el[asCi] -> r[asCj]) -> r[asCj]
+ Data.AdaptiveTuple.Reps.Lazy: reifyTuple8 :: Int -> [el[asFB]] -> (forall c[asFD] s[asFE]. (AdaptiveTuple c[asFD] s[asFE], Nat s[asFE]) => c[asFD] s[asFE] el[asFB] -> r[asFC]) -> r[asFC]
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1btB], Data a[a1btC]) => Data (ATuple2 s[a1btB] a[a1btC])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1btD], Data a[a1btE]) => Data (ATuple3 s[a1btD] a[a1btE])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1btF], Data a[a1btG]) => Data (ATuple4 s[a1btF] a[a1btG])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1btH], Data a[a1btI]) => Data (ATuple5 s[a1btH] a[a1btI])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1btJ], Data a[a1btK]) => Data (ATuple6 s[a1btJ] a[a1btK])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1btL], Data a[a1btM]) => Data (ATuple7 s[a1btL] a[a1btM])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1btN], Data a[a1btO]) => Data (ATuple8 s[a1btN] a[a1btO])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1btP], Data a[a1btQ]) => Data (ATuple9 s[a1btP] a[a1btQ])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1btR], Data a[a1btS]) => Data (ATuple10 s[a1btR] a[a1btS])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1btT], Data a[a1btU]) => Data (ATuple11 s[a1btT] a[a1btU])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1btV], Data a[a1btW]) => Data (ATuple12 s[a1btV] a[a1btW])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1btX], Data a[a1btY]) => Data (ATuple13 s[a1btX] a[a1btY])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1btZ], Data a[a1bu0]) => Data (ATuple14 s[a1btZ] a[a1bu0])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1btz], Data a[a1btA]) => Data (ATuple1 s[a1btz] a[a1btA])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1bu1], Data a[a1bu2]) => Data (ATuple15 s[a1bu1] a[a1bu2])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1bu3], Data a[a1bu4]) => Data (ATuple16 s[a1bu3] a[a1bu4])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1bu5], Data a[a1bu6]) => Data (ATuple17 s[a1bu5] a[a1bu6])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1bu7], Data a[a1bu8]) => Data (ATuple18 s[a1bu7] a[a1bu8])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1bu9], Data a[a1bua]) => Data (ATuple19 s[a1bu9] a[a1bua])
+ Data.AdaptiveTuple.Reps.Strict: instance (Data s[a1bub], Data a[a1buc]) => Data (ATuple20 s[a1bub] a[a1buc])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1btA]) => Eq (ATuple1 s[a1btz] a[a1btA])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1btC]) => Eq (ATuple2 s[a1btB] a[a1btC])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1btE]) => Eq (ATuple3 s[a1btD] a[a1btE])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1btG]) => Eq (ATuple4 s[a1btF] a[a1btG])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1btI]) => Eq (ATuple5 s[a1btH] a[a1btI])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1btK]) => Eq (ATuple6 s[a1btJ] a[a1btK])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1btM]) => Eq (ATuple7 s[a1btL] a[a1btM])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1btO]) => Eq (ATuple8 s[a1btN] a[a1btO])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1btQ]) => Eq (ATuple9 s[a1btP] a[a1btQ])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1btS]) => Eq (ATuple10 s[a1btR] a[a1btS])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1btU]) => Eq (ATuple11 s[a1btT] a[a1btU])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1btW]) => Eq (ATuple12 s[a1btV] a[a1btW])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1btY]) => Eq (ATuple13 s[a1btX] a[a1btY])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1bu0]) => Eq (ATuple14 s[a1btZ] a[a1bu0])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1bu2]) => Eq (ATuple15 s[a1bu1] a[a1bu2])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1bu4]) => Eq (ATuple16 s[a1bu3] a[a1bu4])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1bu6]) => Eq (ATuple17 s[a1bu5] a[a1bu6])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1bu8]) => Eq (ATuple18 s[a1bu7] a[a1bu8])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1bua]) => Eq (ATuple19 s[a1bu9] a[a1bua])
+ Data.AdaptiveTuple.Reps.Strict: instance (Eq a[a1buc]) => Eq (ATuple20 s[a1bub] a[a1buc])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1btA]) => Show (ATuple1 s[a1btz] a[a1btA])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1btC]) => Show (ATuple2 s[a1btB] a[a1btC])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1btE]) => Show (ATuple3 s[a1btD] a[a1btE])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1btG]) => Show (ATuple4 s[a1btF] a[a1btG])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1btI]) => Show (ATuple5 s[a1btH] a[a1btI])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1btK]) => Show (ATuple6 s[a1btJ] a[a1btK])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1btM]) => Show (ATuple7 s[a1btL] a[a1btM])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1btO]) => Show (ATuple8 s[a1btN] a[a1btO])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1btQ]) => Show (ATuple9 s[a1btP] a[a1btQ])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1btS]) => Show (ATuple10 s[a1btR] a[a1btS])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1btU]) => Show (ATuple11 s[a1btT] a[a1btU])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1btW]) => Show (ATuple12 s[a1btV] a[a1btW])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1btY]) => Show (ATuple13 s[a1btX] a[a1btY])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1bu0]) => Show (ATuple14 s[a1btZ] a[a1bu0])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1bu2]) => Show (ATuple15 s[a1bu1] a[a1bu2])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1bu4]) => Show (ATuple16 s[a1bu3] a[a1bu4])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1bu6]) => Show (ATuple17 s[a1bu5] a[a1bu6])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1bu8]) => Show (ATuple18 s[a1bu7] a[a1bu8])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1bua]) => Show (ATuple19 s[a1bu9] a[a1bua])
+ Data.AdaptiveTuple.Reps.Strict: instance (Show a[a1buc]) => Show (ATuple20 s[a1bub] a[a1buc])
+ Data.AdaptiveTuple.Reps.Strict: reifyTuple12 :: Int -> [el[a1i8Z]] -> (forall c[a1i91] s[a1i92]. (AdaptiveTuple c[a1i91] s[a1i92], Nat s[a1i92]) => c[a1i91] s[a1i92] el[a1i8Z] -> r[a1i90]) -> r[a1i90]
+ Data.AdaptiveTuple.Reps.Strict: reifyTuple16 :: Int -> [el[a1ifM]] -> (forall c[a1ifO] s[a1ifP]. (AdaptiveTuple c[a1ifO] s[a1ifP], Nat s[a1ifP]) => c[a1ifO] s[a1ifP] el[a1ifM] -> r[a1ifN]) -> r[a1ifN]
+ Data.AdaptiveTuple.Reps.Strict: reifyTuple20 :: Int -> [el[a1ioj]] -> (forall c[a1iol] s[a1iom]. (AdaptiveTuple c[a1iol] s[a1iom], Nat s[a1iom]) => c[a1iol] s[a1iom] el[a1ioj] -> r[a1iok]) -> r[a1iok]
+ Data.AdaptiveTuple.Reps.Strict: reifyTuple4 :: Int -> [el[a1i0D]] -> (forall c[a1i0F] s[a1i0G]. (AdaptiveTuple c[a1i0F] s[a1i0G], Nat s[a1i0G]) => c[a1i0F] s[a1i0G] el[a1i0D] -> r[a1i0E]) -> r[a1i0E]
+ Data.AdaptiveTuple.Reps.Strict: reifyTuple8 :: Int -> [el[a1i3W]] -> (forall c[a1i3Y] s[a1i3Z]. (AdaptiveTuple c[a1i3Y] s[a1i3Z], Nat s[a1i3Z]) => c[a1i3Y] s[a1i3Z] el[a1i3W] -> r[a1i3X]) -> r[a1i3X]
- Data.AdaptiveTuple.Reps.Lazy: ATuple1 :: a[aj9S] -> ATuple1 s[aj9R] a[aj9S]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple1 :: a[am5f] -> ATuple1 s[am5e] a[am5f]
- Data.AdaptiveTuple.Reps.Lazy: ATuple10 :: a[ajaa] -> a[ajaa] -> a[ajaa] -> a[ajaa] -> a[ajaa] -> a[ajaa] -> a[ajaa] -> a[ajaa] -> a[ajaa] -> a[ajaa] -> ATuple10 s[aja9] a[ajaa]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple10 :: a[am5x] -> a[am5x] -> a[am5x] -> a[am5x] -> a[am5x] -> a[am5x] -> a[am5x] -> a[am5x] -> a[am5x] -> a[am5x] -> ATuple10 s[am5w] a[am5x]
- Data.AdaptiveTuple.Reps.Lazy: ATuple11 :: a[ajac] -> a[ajac] -> a[ajac] -> a[ajac] -> a[ajac] -> a[ajac] -> a[ajac] -> a[ajac] -> a[ajac] -> a[ajac] -> a[ajac] -> ATuple11 s[ajab] a[ajac]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple11 :: a[am5z] -> a[am5z] -> a[am5z] -> a[am5z] -> a[am5z] -> a[am5z] -> a[am5z] -> a[am5z] -> a[am5z] -> a[am5z] -> a[am5z] -> ATuple11 s[am5y] a[am5z]
- Data.AdaptiveTuple.Reps.Lazy: ATuple12 :: a[ajae] -> a[ajae] -> a[ajae] -> a[ajae] -> a[ajae] -> a[ajae] -> a[ajae] -> a[ajae] -> a[ajae] -> a[ajae] -> a[ajae] -> a[ajae] -> ATuple12 s[ajad] a[ajae]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple12 :: a[am5B] -> a[am5B] -> a[am5B] -> a[am5B] -> a[am5B] -> a[am5B] -> a[am5B] -> a[am5B] -> a[am5B] -> a[am5B] -> a[am5B] -> a[am5B] -> ATuple12 s[am5A] a[am5B]
- Data.AdaptiveTuple.Reps.Lazy: ATuple13 :: a[ajag] -> a[ajag] -> a[ajag] -> a[ajag] -> a[ajag] -> a[ajag] -> a[ajag] -> a[ajag] -> a[ajag] -> a[ajag] -> a[ajag] -> a[ajag] -> a[ajag] -> ATuple13 s[ajaf] a[ajag]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple13 :: a[am5D] -> a[am5D] -> a[am5D] -> a[am5D] -> a[am5D] -> a[am5D] -> a[am5D] -> a[am5D] -> a[am5D] -> a[am5D] -> a[am5D] -> a[am5D] -> a[am5D] -> ATuple13 s[am5C] a[am5D]
- Data.AdaptiveTuple.Reps.Lazy: ATuple14 :: a[ajai] -> a[ajai] -> a[ajai] -> a[ajai] -> a[ajai] -> a[ajai] -> a[ajai] -> a[ajai] -> a[ajai] -> a[ajai] -> a[ajai] -> a[ajai] -> a[ajai] -> a[ajai] -> ATuple14 s[ajah] a[ajai]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple14 :: a[am5F] -> a[am5F] -> a[am5F] -> a[am5F] -> a[am5F] -> a[am5F] -> a[am5F] -> a[am5F] -> a[am5F] -> a[am5F] -> a[am5F] -> a[am5F] -> a[am5F] -> a[am5F] -> ATuple14 s[am5E] a[am5F]
- Data.AdaptiveTuple.Reps.Lazy: ATuple15 :: a[ajak] -> a[ajak] -> a[ajak] -> a[ajak] -> a[ajak] -> a[ajak] -> a[ajak] -> a[ajak] -> a[ajak] -> a[ajak] -> a[ajak] -> a[ajak] -> a[ajak] -> a[ajak] -> a[ajak] -> ATuple15 s[ajaj] a[ajak]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple15 :: a[am5H] -> a[am5H] -> a[am5H] -> a[am5H] -> a[am5H] -> a[am5H] -> a[am5H] -> a[am5H] -> a[am5H] -> a[am5H] -> a[am5H] -> a[am5H] -> a[am5H] -> a[am5H] -> a[am5H] -> ATuple15 s[am5G] a[am5H]
- Data.AdaptiveTuple.Reps.Lazy: ATuple16 :: a[ajam] -> a[ajam] -> a[ajam] -> a[ajam] -> a[ajam] -> a[ajam] -> a[ajam] -> a[ajam] -> a[ajam] -> a[ajam] -> a[ajam] -> a[ajam] -> a[ajam] -> a[ajam] -> a[ajam] -> a[ajam] -> ATuple16 s[ajal] a[ajam]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple16 :: a[am5J] -> a[am5J] -> a[am5J] -> a[am5J] -> a[am5J] -> a[am5J] -> a[am5J] -> a[am5J] -> a[am5J] -> a[am5J] -> a[am5J] -> a[am5J] -> a[am5J] -> a[am5J] -> a[am5J] -> a[am5J] -> ATuple16 s[am5I] a[am5J]
- Data.AdaptiveTuple.Reps.Lazy: ATuple17 :: a[ajao] -> a[ajao] -> a[ajao] -> a[ajao] -> a[ajao] -> a[ajao] -> a[ajao] -> a[ajao] -> a[ajao] -> a[ajao] -> a[ajao] -> a[ajao] -> a[ajao] -> a[ajao] -> a[ajao] -> a[ajao] -> a[ajao] -> ATuple17 s[ajan] a[ajao]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple17 :: a[am5L] -> a[am5L] -> a[am5L] -> a[am5L] -> a[am5L] -> a[am5L] -> a[am5L] -> a[am5L] -> a[am5L] -> a[am5L] -> a[am5L] -> a[am5L] -> a[am5L] -> a[am5L] -> a[am5L] -> a[am5L] -> a[am5L] -> ATuple17 s[am5K] a[am5L]
- Data.AdaptiveTuple.Reps.Lazy: ATuple18 :: a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> a[ajaq] -> ATuple18 s[ajap] a[ajaq]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple18 :: a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> a[am5N] -> ATuple18 s[am5M] a[am5N]
- Data.AdaptiveTuple.Reps.Lazy: ATuple19 :: a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> a[ajas] -> ATuple19 s[ajar] a[ajas]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple19 :: a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> a[am5P] -> ATuple19 s[am5O] a[am5P]
- Data.AdaptiveTuple.Reps.Lazy: ATuple2 :: a[aj9U] -> a[aj9U] -> ATuple2 s[aj9T] a[aj9U]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple2 :: a[am5h] -> a[am5h] -> ATuple2 s[am5g] a[am5h]
- Data.AdaptiveTuple.Reps.Lazy: ATuple20 :: a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> a[ajau] -> ATuple20 s[ajat] a[ajau]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple20 :: a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> a[am5R] -> ATuple20 s[am5Q] a[am5R]
- Data.AdaptiveTuple.Reps.Lazy: ATuple3 :: a[aj9W] -> a[aj9W] -> a[aj9W] -> ATuple3 s[aj9V] a[aj9W]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple3 :: a[am5j] -> a[am5j] -> a[am5j] -> ATuple3 s[am5i] a[am5j]
- Data.AdaptiveTuple.Reps.Lazy: ATuple4 :: a[aj9Y] -> a[aj9Y] -> a[aj9Y] -> a[aj9Y] -> ATuple4 s[aj9X] a[aj9Y]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple4 :: a[am5l] -> a[am5l] -> a[am5l] -> a[am5l] -> ATuple4 s[am5k] a[am5l]
- Data.AdaptiveTuple.Reps.Lazy: ATuple5 :: a[aja0] -> a[aja0] -> a[aja0] -> a[aja0] -> a[aja0] -> ATuple5 s[aj9Z] a[aja0]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple5 :: a[am5n] -> a[am5n] -> a[am5n] -> a[am5n] -> a[am5n] -> ATuple5 s[am5m] a[am5n]
- Data.AdaptiveTuple.Reps.Lazy: ATuple6 :: a[aja2] -> a[aja2] -> a[aja2] -> a[aja2] -> a[aja2] -> a[aja2] -> ATuple6 s[aja1] a[aja2]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple6 :: a[am5p] -> a[am5p] -> a[am5p] -> a[am5p] -> a[am5p] -> a[am5p] -> ATuple6 s[am5o] a[am5p]
- Data.AdaptiveTuple.Reps.Lazy: ATuple7 :: a[aja4] -> a[aja4] -> a[aja4] -> a[aja4] -> a[aja4] -> a[aja4] -> a[aja4] -> ATuple7 s[aja3] a[aja4]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple7 :: a[am5r] -> a[am5r] -> a[am5r] -> a[am5r] -> a[am5r] -> a[am5r] -> a[am5r] -> ATuple7 s[am5q] a[am5r]
- Data.AdaptiveTuple.Reps.Lazy: ATuple8 :: a[aja6] -> a[aja6] -> a[aja6] -> a[aja6] -> a[aja6] -> a[aja6] -> a[aja6] -> a[aja6] -> ATuple8 s[aja5] a[aja6]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple8 :: a[am5t] -> a[am5t] -> a[am5t] -> a[am5t] -> a[am5t] -> a[am5t] -> a[am5t] -> a[am5t] -> ATuple8 s[am5s] a[am5t]
- Data.AdaptiveTuple.Reps.Lazy: ATuple9 :: a[aja8] -> a[aja8] -> a[aja8] -> a[aja8] -> a[aja8] -> a[aja8] -> a[aja8] -> a[aja8] -> a[aja8] -> ATuple9 s[aja7] a[aja8]
+ Data.AdaptiveTuple.Reps.Lazy: ATuple9 :: a[am5v] -> a[am5v] -> a[am5v] -> a[am5v] -> a[am5v] -> a[am5v] -> a[am5v] -> a[am5v] -> a[am5v] -> ATuple9 s[am5u] a[am5v]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple1 s[aj9R] a[aj9S]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple1 s[am5e] a[am5f]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple10 s[aja9] a[ajaa]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple10 s[am5w] a[am5x]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple11 s[ajab] a[ajac]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple11 s[am5y] a[am5z]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple12 s[ajad] a[ajae]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple12 s[am5A] a[am5B]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple13 s[ajaf] a[ajag]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple13 s[am5C] a[am5D]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple14 s[ajah] a[ajai]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple14 s[am5E] a[am5F]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple15 s[ajaj] a[ajak]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple15 s[am5G] a[am5H]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple16 s[ajal] a[ajam]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple16 s[am5I] a[am5J]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple17 s[ajan] a[ajao]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple17 s[am5K] a[am5L]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple18 s[ajap] a[ajaq]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple18 s[am5M] a[am5N]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple19 s[ajar] a[ajas]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple19 s[am5O] a[am5P]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple2 s[aj9T] a[aj9U]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple2 s[am5g] a[am5h]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple20 s[ajat] a[ajau]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple20 s[am5Q] a[am5R]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple3 s[aj9V] a[aj9W]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple3 s[am5i] a[am5j]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple4 s[aj9X] a[aj9Y]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple4 s[am5k] a[am5l]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple5 s[aj9Z] a[aja0]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple5 s[am5m] a[am5n]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple6 s[aja1] a[aja2]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple6 s[am5o] a[am5p]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple7 s[aja3] a[aja4]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple7 s[am5q] a[am5r]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple8 s[aja5] a[aja6]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple8 s[am5s] a[am5t]
- Data.AdaptiveTuple.Reps.Lazy: data ATuple9 s[aja7] a[aja8]
+ Data.AdaptiveTuple.Reps.Lazy: data ATuple9 s[am5u] a[am5v]
- Data.AdaptiveTuple.Reps.Strict: ATuple1 :: !a[a17hi] -> ATuple1 s[a17hh] a[a17hi]
+ Data.AdaptiveTuple.Reps.Strict: ATuple1 :: !a[a1btA] -> ATuple1 s[a1btz] a[a1btA]
- Data.AdaptiveTuple.Reps.Strict: ATuple10 :: !a[a17hA] -> !a[a17hA] -> !a[a17hA] -> !a[a17hA] -> !a[a17hA] -> !a[a17hA] -> !a[a17hA] -> !a[a17hA] -> !a[a17hA] -> !a[a17hA] -> ATuple10 s[a17hz] a[a17hA]
+ Data.AdaptiveTuple.Reps.Strict: ATuple10 :: !a[a1btS] -> !a[a1btS] -> !a[a1btS] -> !a[a1btS] -> !a[a1btS] -> !a[a1btS] -> !a[a1btS] -> !a[a1btS] -> !a[a1btS] -> !a[a1btS] -> ATuple10 s[a1btR] a[a1btS]
- Data.AdaptiveTuple.Reps.Strict: ATuple11 :: !a[a17hC] -> !a[a17hC] -> !a[a17hC] -> !a[a17hC] -> !a[a17hC] -> !a[a17hC] -> !a[a17hC] -> !a[a17hC] -> !a[a17hC] -> !a[a17hC] -> !a[a17hC] -> ATuple11 s[a17hB] a[a17hC]
+ Data.AdaptiveTuple.Reps.Strict: ATuple11 :: !a[a1btU] -> !a[a1btU] -> !a[a1btU] -> !a[a1btU] -> !a[a1btU] -> !a[a1btU] -> !a[a1btU] -> !a[a1btU] -> !a[a1btU] -> !a[a1btU] -> !a[a1btU] -> ATuple11 s[a1btT] a[a1btU]
- Data.AdaptiveTuple.Reps.Strict: ATuple12 :: !a[a17hE] -> !a[a17hE] -> !a[a17hE] -> !a[a17hE] -> !a[a17hE] -> !a[a17hE] -> !a[a17hE] -> !a[a17hE] -> !a[a17hE] -> !a[a17hE] -> !a[a17hE] -> !a[a17hE] -> ATuple12 s[a17hD] a[a17hE]
+ Data.AdaptiveTuple.Reps.Strict: ATuple12 :: !a[a1btW] -> !a[a1btW] -> !a[a1btW] -> !a[a1btW] -> !a[a1btW] -> !a[a1btW] -> !a[a1btW] -> !a[a1btW] -> !a[a1btW] -> !a[a1btW] -> !a[a1btW] -> !a[a1btW] -> ATuple12 s[a1btV] a[a1btW]
- Data.AdaptiveTuple.Reps.Strict: ATuple13 :: !a[a17hG] -> !a[a17hG] -> !a[a17hG] -> !a[a17hG] -> !a[a17hG] -> !a[a17hG] -> !a[a17hG] -> !a[a17hG] -> !a[a17hG] -> !a[a17hG] -> !a[a17hG] -> !a[a17hG] -> !a[a17hG] -> ATuple13 s[a17hF] a[a17hG]
+ Data.AdaptiveTuple.Reps.Strict: ATuple13 :: !a[a1btY] -> !a[a1btY] -> !a[a1btY] -> !a[a1btY] -> !a[a1btY] -> !a[a1btY] -> !a[a1btY] -> !a[a1btY] -> !a[a1btY] -> !a[a1btY] -> !a[a1btY] -> !a[a1btY] -> !a[a1btY] -> ATuple13 s[a1btX] a[a1btY]
- Data.AdaptiveTuple.Reps.Strict: ATuple14 :: !a[a17hI] -> !a[a17hI] -> !a[a17hI] -> !a[a17hI] -> !a[a17hI] -> !a[a17hI] -> !a[a17hI] -> !a[a17hI] -> !a[a17hI] -> !a[a17hI] -> !a[a17hI] -> !a[a17hI] -> !a[a17hI] -> !a[a17hI] -> ATuple14 s[a17hH] a[a17hI]
+ Data.AdaptiveTuple.Reps.Strict: ATuple14 :: !a[a1bu0] -> !a[a1bu0] -> !a[a1bu0] -> !a[a1bu0] -> !a[a1bu0] -> !a[a1bu0] -> !a[a1bu0] -> !a[a1bu0] -> !a[a1bu0] -> !a[a1bu0] -> !a[a1bu0] -> !a[a1bu0] -> !a[a1bu0] -> !a[a1bu0] -> ATuple14 s[a1btZ] a[a1bu0]
- Data.AdaptiveTuple.Reps.Strict: ATuple15 :: !a[a17hK] -> !a[a17hK] -> !a[a17hK] -> !a[a17hK] -> !a[a17hK] -> !a[a17hK] -> !a[a17hK] -> !a[a17hK] -> !a[a17hK] -> !a[a17hK] -> !a[a17hK] -> !a[a17hK] -> !a[a17hK] -> !a[a17hK] -> !a[a17hK] -> ATuple15 s[a17hJ] a[a17hK]
+ Data.AdaptiveTuple.Reps.Strict: ATuple15 :: !a[a1bu2] -> !a[a1bu2] -> !a[a1bu2] -> !a[a1bu2] -> !a[a1bu2] -> !a[a1bu2] -> !a[a1bu2] -> !a[a1bu2] -> !a[a1bu2] -> !a[a1bu2] -> !a[a1bu2] -> !a[a1bu2] -> !a[a1bu2] -> !a[a1bu2] -> !a[a1bu2] -> ATuple15 s[a1bu1] a[a1bu2]
- Data.AdaptiveTuple.Reps.Strict: ATuple16 :: !a[a17hM] -> !a[a17hM] -> !a[a17hM] -> !a[a17hM] -> !a[a17hM] -> !a[a17hM] -> !a[a17hM] -> !a[a17hM] -> !a[a17hM] -> !a[a17hM] -> !a[a17hM] -> !a[a17hM] -> !a[a17hM] -> !a[a17hM] -> !a[a17hM] -> !a[a17hM] -> ATuple16 s[a17hL] a[a17hM]
+ Data.AdaptiveTuple.Reps.Strict: ATuple16 :: !a[a1bu4] -> !a[a1bu4] -> !a[a1bu4] -> !a[a1bu4] -> !a[a1bu4] -> !a[a1bu4] -> !a[a1bu4] -> !a[a1bu4] -> !a[a1bu4] -> !a[a1bu4] -> !a[a1bu4] -> !a[a1bu4] -> !a[a1bu4] -> !a[a1bu4] -> !a[a1bu4] -> !a[a1bu4] -> ATuple16 s[a1bu3] a[a1bu4]
- Data.AdaptiveTuple.Reps.Strict: ATuple17 :: !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> !a[a17hO] -> ATuple17 s[a17hN] a[a17hO]
+ Data.AdaptiveTuple.Reps.Strict: ATuple17 :: !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> !a[a1bu6] -> ATuple17 s[a1bu5] a[a1bu6]
- Data.AdaptiveTuple.Reps.Strict: ATuple18 :: !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> !a[a17hQ] -> ATuple18 s[a17hP] a[a17hQ]
+ Data.AdaptiveTuple.Reps.Strict: ATuple18 :: !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> !a[a1bu8] -> ATuple18 s[a1bu7] a[a1bu8]
- Data.AdaptiveTuple.Reps.Strict: ATuple19 :: !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> !a[a17hS] -> ATuple19 s[a17hR] a[a17hS]
+ Data.AdaptiveTuple.Reps.Strict: ATuple19 :: !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> !a[a1bua] -> ATuple19 s[a1bu9] a[a1bua]
- Data.AdaptiveTuple.Reps.Strict: ATuple2 :: !a[a17hk] -> !a[a17hk] -> ATuple2 s[a17hj] a[a17hk]
+ Data.AdaptiveTuple.Reps.Strict: ATuple2 :: !a[a1btC] -> !a[a1btC] -> ATuple2 s[a1btB] a[a1btC]
- Data.AdaptiveTuple.Reps.Strict: ATuple20 :: !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> !a[a17hU] -> ATuple20 s[a17hT] a[a17hU]
+ Data.AdaptiveTuple.Reps.Strict: ATuple20 :: !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> !a[a1buc] -> ATuple20 s[a1bub] a[a1buc]
- Data.AdaptiveTuple.Reps.Strict: ATuple3 :: !a[a17hm] -> !a[a17hm] -> !a[a17hm] -> ATuple3 s[a17hl] a[a17hm]
+ Data.AdaptiveTuple.Reps.Strict: ATuple3 :: !a[a1btE] -> !a[a1btE] -> !a[a1btE] -> ATuple3 s[a1btD] a[a1btE]
- Data.AdaptiveTuple.Reps.Strict: ATuple4 :: !a[a17ho] -> !a[a17ho] -> !a[a17ho] -> !a[a17ho] -> ATuple4 s[a17hn] a[a17ho]
+ Data.AdaptiveTuple.Reps.Strict: ATuple4 :: !a[a1btG] -> !a[a1btG] -> !a[a1btG] -> !a[a1btG] -> ATuple4 s[a1btF] a[a1btG]
- Data.AdaptiveTuple.Reps.Strict: ATuple5 :: !a[a17hq] -> !a[a17hq] -> !a[a17hq] -> !a[a17hq] -> !a[a17hq] -> ATuple5 s[a17hp] a[a17hq]
+ Data.AdaptiveTuple.Reps.Strict: ATuple5 :: !a[a1btI] -> !a[a1btI] -> !a[a1btI] -> !a[a1btI] -> !a[a1btI] -> ATuple5 s[a1btH] a[a1btI]
- Data.AdaptiveTuple.Reps.Strict: ATuple6 :: !a[a17hs] -> !a[a17hs] -> !a[a17hs] -> !a[a17hs] -> !a[a17hs] -> !a[a17hs] -> ATuple6 s[a17hr] a[a17hs]
+ Data.AdaptiveTuple.Reps.Strict: ATuple6 :: !a[a1btK] -> !a[a1btK] -> !a[a1btK] -> !a[a1btK] -> !a[a1btK] -> !a[a1btK] -> ATuple6 s[a1btJ] a[a1btK]
- Data.AdaptiveTuple.Reps.Strict: ATuple7 :: !a[a17hu] -> !a[a17hu] -> !a[a17hu] -> !a[a17hu] -> !a[a17hu] -> !a[a17hu] -> !a[a17hu] -> ATuple7 s[a17ht] a[a17hu]
+ Data.AdaptiveTuple.Reps.Strict: ATuple7 :: !a[a1btM] -> !a[a1btM] -> !a[a1btM] -> !a[a1btM] -> !a[a1btM] -> !a[a1btM] -> !a[a1btM] -> ATuple7 s[a1btL] a[a1btM]
- Data.AdaptiveTuple.Reps.Strict: ATuple8 :: !a[a17hw] -> !a[a17hw] -> !a[a17hw] -> !a[a17hw] -> !a[a17hw] -> !a[a17hw] -> !a[a17hw] -> !a[a17hw] -> ATuple8 s[a17hv] a[a17hw]
+ Data.AdaptiveTuple.Reps.Strict: ATuple8 :: !a[a1btO] -> !a[a1btO] -> !a[a1btO] -> !a[a1btO] -> !a[a1btO] -> !a[a1btO] -> !a[a1btO] -> !a[a1btO] -> ATuple8 s[a1btN] a[a1btO]
- Data.AdaptiveTuple.Reps.Strict: ATuple9 :: !a[a17hy] -> !a[a17hy] -> !a[a17hy] -> !a[a17hy] -> !a[a17hy] -> !a[a17hy] -> !a[a17hy] -> !a[a17hy] -> !a[a17hy] -> ATuple9 s[a17hx] a[a17hy]
+ Data.AdaptiveTuple.Reps.Strict: ATuple9 :: !a[a1btQ] -> !a[a1btQ] -> !a[a1btQ] -> !a[a1btQ] -> !a[a1btQ] -> !a[a1btQ] -> !a[a1btQ] -> !a[a1btQ] -> !a[a1btQ] -> ATuple9 s[a1btP] a[a1btQ]
- Data.AdaptiveTuple.Reps.Strict: data ATuple1 s[a17hh] a[a17hi]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple1 s[a1btz] a[a1btA]
- Data.AdaptiveTuple.Reps.Strict: data ATuple10 s[a17hz] a[a17hA]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple10 s[a1btR] a[a1btS]
- Data.AdaptiveTuple.Reps.Strict: data ATuple11 s[a17hB] a[a17hC]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple11 s[a1btT] a[a1btU]
- Data.AdaptiveTuple.Reps.Strict: data ATuple12 s[a17hD] a[a17hE]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple12 s[a1btV] a[a1btW]
- Data.AdaptiveTuple.Reps.Strict: data ATuple13 s[a17hF] a[a17hG]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple13 s[a1btX] a[a1btY]
- Data.AdaptiveTuple.Reps.Strict: data ATuple14 s[a17hH] a[a17hI]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple14 s[a1btZ] a[a1bu0]
- Data.AdaptiveTuple.Reps.Strict: data ATuple15 s[a17hJ] a[a17hK]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple15 s[a1bu1] a[a1bu2]
- Data.AdaptiveTuple.Reps.Strict: data ATuple16 s[a17hL] a[a17hM]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple16 s[a1bu3] a[a1bu4]
- Data.AdaptiveTuple.Reps.Strict: data ATuple17 s[a17hN] a[a17hO]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple17 s[a1bu5] a[a1bu6]
- Data.AdaptiveTuple.Reps.Strict: data ATuple18 s[a17hP] a[a17hQ]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple18 s[a1bu7] a[a1bu8]
- Data.AdaptiveTuple.Reps.Strict: data ATuple19 s[a17hR] a[a17hS]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple19 s[a1bu9] a[a1bua]
- Data.AdaptiveTuple.Reps.Strict: data ATuple2 s[a17hj] a[a17hk]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple2 s[a1btB] a[a1btC]
- Data.AdaptiveTuple.Reps.Strict: data ATuple20 s[a17hT] a[a17hU]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple20 s[a1bub] a[a1buc]
- Data.AdaptiveTuple.Reps.Strict: data ATuple3 s[a17hl] a[a17hm]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple3 s[a1btD] a[a1btE]
- Data.AdaptiveTuple.Reps.Strict: data ATuple4 s[a17hn] a[a17ho]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple4 s[a1btF] a[a1btG]
- Data.AdaptiveTuple.Reps.Strict: data ATuple5 s[a17hp] a[a17hq]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple5 s[a1btH] a[a1btI]
- Data.AdaptiveTuple.Reps.Strict: data ATuple6 s[a17hr] a[a17hs]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple6 s[a1btJ] a[a1btK]
- Data.AdaptiveTuple.Reps.Strict: data ATuple7 s[a17ht] a[a17hu]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple7 s[a1btL] a[a1btM]
- Data.AdaptiveTuple.Reps.Strict: data ATuple8 s[a17hv] a[a17hw]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple8 s[a1btN] a[a1btO]
- Data.AdaptiveTuple.Reps.Strict: data ATuple9 s[a17hx] a[a17hy]
+ Data.AdaptiveTuple.Reps.Strict: data ATuple9 s[a1btP] a[a1btQ]
Files
- adaptive-tuple.cabal +1/−1
- src/Data/AdaptiveTuple.hs +16/−118
- src/Data/AdaptiveTuple/AdaptiveTuple.hs +67/−2
- src/Data/AdaptiveTuple/Reps/Lazy.hs +14/−2
- src/Data/AdaptiveTuple/Reps/Strict.hs +14/−2
- src/Data/AdaptiveTuple/TH.hs +40/−7
adaptive-tuple.cabal view
@@ -1,5 +1,5 @@ name: adaptive-tuple-version: 0.1.1+version: 0.2.0 synopsis: Self-optimizing tuple types description: Self optimizing tuple types.
src/Data/AdaptiveTuple.hs view
@@ -25,13 +25,8 @@ -- using AdaptiveTuple is similar to the `ZipList` applicative instance, except -- without the overhead. -{-# LANGUAGE MultiParamTypeClasses,- FlexibleInstances,- FlexibleContexts,- ScopedTypeVariables,- Rank2Types,- GeneralizedNewtypeDeriving,- TemplateHaskell #-}+{-# LANGUAGE MultiParamTypeClasses+ ,Rank2Types #-} {-# OPTIONS_GHC -fno-warn-name-shadowing #-} @@ -50,23 +45,13 @@ where -import Prelude-import qualified Prelude as P- import Data.AdaptiveTuple.AdaptiveTuple import qualified Data.AdaptiveTuple.Reps.Lazy as L import qualified Data.AdaptiveTuple.Reps.Strict as S--import Data.TypeLevel.Num+import Data.TypeLevel.Num as T -import Control.Arrow import Control.Applicative-import Control.Monad --- helper function-fI :: (Integral a, Num b) => a -> b-fI = fromIntegral- -- -------------------------------------------------- -- |Lazily convert a list of AdaptiveTuples into an AdaptiveTuple of lists.@@ -78,104 +63,17 @@ mapIndexed :: (AdaptiveTuple c s) => (Int -> a -> b) -> c s a -> c s b mapIndexed f a = f <$> toATuple [0..] <*> a ---reification function---- |run a computation using a lazy AdaptiveTuple-reifyTuple :: forall el r. Int -> [el] -> (forall c s. (AdaptiveTuple c s, Nat s) => c s el -> r) -> r-reifyTuple 0 xs f = f (toATuple xs :: ATuple0 D0 el)-reifyTuple 1 xs f = f (toATuple xs :: L.ATuple1 D1 el)-reifyTuple 2 xs f = f (toATuple xs :: L.ATuple2 D2 el)-reifyTuple 3 xs f = f (toATuple xs :: L.ATuple3 D3 el)-reifyTuple 4 xs f = f (toATuple xs :: L.ATuple4 D4 el)-reifyTuple 5 xs f = f (toATuple xs :: L.ATuple5 D5 el)-reifyTuple 6 xs f = f (toATuple xs :: L.ATuple6 D6 el)-reifyTuple 7 xs f = f (toATuple xs :: L.ATuple7 D7 el)-reifyTuple 8 xs f = f (toATuple xs :: L.ATuple8 D8 el)-reifyTuple 9 xs f = f (toATuple xs :: L.ATuple9 D9 el)-reifyTuple 10 xs f = f (toATuple xs :: L.ATuple10 D10 el)-reifyTuple 11 xs f = f (toATuple xs :: L.ATuple11 D11 el)-reifyTuple 12 xs f = f (toATuple xs :: L.ATuple12 D12 el)-reifyTuple 13 xs f = f (toATuple xs :: L.ATuple13 D13 el)-reifyTuple 14 xs f = f (toATuple xs :: L.ATuple14 D14 el)-reifyTuple 15 xs f = f (toATuple xs :: L.ATuple15 D15 el)-reifyTuple 16 xs f = f (toATuple xs :: L.ATuple16 D16 el)-reifyTuple 17 xs f = f (toATuple xs :: L.ATuple17 D17 el)-reifyTuple 18 xs f = f (toATuple xs :: L.ATuple18 D18 el)-reifyTuple 19 xs f = f (toATuple xs :: L.ATuple19 D19 el)-reifyTuple 20 xs f = f (toATuple xs :: L.ATuple20 D20 el)-reifyTuple n xs f = reifyIntegral n $ \n' -> f (makeListTuple n' xs)---- |run a computation using a strict AdaptiveTuple-reifyStrictTuple :: forall el r. Int -> [el] -> (forall c s. (AdaptiveTuple c s, Nat s) => c s el -> r) -> r-reifyStrictTuple 0 xs f = f (toATuple xs :: ATuple0 D0 el)-reifyStrictTuple 1 xs f = f (toATuple xs :: S.ATuple1 D1 el)-reifyStrictTuple 2 xs f = f (toATuple xs :: S.ATuple2 D2 el)-reifyStrictTuple 3 xs f = f (toATuple xs :: S.ATuple3 D3 el)-reifyStrictTuple 4 xs f = f (toATuple xs :: S.ATuple4 D4 el)-reifyStrictTuple 5 xs f = f (toATuple xs :: S.ATuple5 D5 el)-reifyStrictTuple 6 xs f = f (toATuple xs :: S.ATuple6 D6 el)-reifyStrictTuple 7 xs f = f (toATuple xs :: S.ATuple7 D7 el)-reifyStrictTuple 8 xs f = f (toATuple xs :: S.ATuple8 D8 el)-reifyStrictTuple 9 xs f = f (toATuple xs :: S.ATuple9 D9 el)-reifyStrictTuple 10 xs f = f (toATuple xs :: S.ATuple10 D10 el)-reifyStrictTuple 11 xs f = f (toATuple xs :: S.ATuple11 D11 el)-reifyStrictTuple 12 xs f = f (toATuple xs :: S.ATuple12 D12 el)-reifyStrictTuple 13 xs f = f (toATuple xs :: S.ATuple13 D13 el)-reifyStrictTuple 14 xs f = f (toATuple xs :: S.ATuple14 D14 el)-reifyStrictTuple 15 xs f = f (toATuple xs :: S.ATuple15 D15 el)-reifyStrictTuple 16 xs f = f (toATuple xs :: S.ATuple16 D16 el)-reifyStrictTuple 17 xs f = f (toATuple xs :: S.ATuple17 D17 el)-reifyStrictTuple 18 xs f = f (toATuple xs :: S.ATuple18 D18 el)-reifyStrictTuple 19 xs f = f (toATuple xs :: S.ATuple19 D19 el)-reifyStrictTuple 20 xs f = f (toATuple xs :: S.ATuple20 D20 el)-reifyStrictTuple n xs f = reifyIntegral n $ \n' -> f (makeListTuple n' xs)---- ---------------------------------------------------------- no-element tuple--data ATuple0 s el = ATuple0 deriving (Eq, Show)--instance Functor (ATuple0 D0) where- fmap _ _ = ATuple0--instance Applicative (ATuple0 D0) where- pure _ = ATuple0- _ <*> _ = ATuple0--instance AdaptiveTuple ATuple0 D0 where- getIndex _ _ = oObExcp "getIndex"- setIndex _ _ _ = ATuple0- mapIndex _ _ _ = ATuple0- toATuple _ = ATuple0- fromATuple _ = []- sequenceAT _ = return ATuple0----- |A ListTuple is a List with a type-level length.--- to be used when there isn't a more specific adaptive tuple defined-newtype Nat s => ListTuple s a = ListTuple {getListTuple :: [a]}- deriving (Eq, Functor, Show)---- |Create a ListTuple-makeListTuple :: Nat s => s -> [a] -> ListTuple s a-makeListTuple s xs | toInt s P.< P.length xs =- error $ "input list to short to make ListTuple of length " ++- (show $ toInt s)-makeListTuple s xs = ListTuple . P.take (toInt s) $ xs--instance Nat s => Applicative (ListTuple s) where- pure = pureLT- a <*> b = ListTuple $ zipWith ($) (getListTuple a) (getListTuple b)--pureLT :: forall s a. (Nat s) => a -> ListTuple s a-pureLT = ListTuple . replicate (toInt (undefined :: s))+--default reification functions+reifyTuple ::+ forall el r.Int+ -> [el]+ -> (forall c s.(AdaptiveTuple c s, T.Nat s) => c s el -> r)+ -> r+reifyTuple = L.reifyTuple20 -instance forall s. (Nat s) => AdaptiveTuple ListTuple s where- getIndex z i = getListTuple z !! (fI i)- setIndex i el = ListTuple . uncurry (++) . ((++ [el]) *** P.drop 1) .- P.splitAt (fI i) . getListTuple- mapIndex f i = ListTuple . uncurry (++) . second (\(x:xs) -> f x : xs) .- P.splitAt (fI i) . getListTuple- toATuple = makeListTuple (undefined :: s)- fromATuple = getListTuple- sequenceAT = liftM ListTuple . sequence . getListTuple+reifyStrictTuple ::+ forall el r.Int+ -> [el]+ -> (forall c s.(AdaptiveTuple c s, T.Nat s) => c s el -> r)+ -> r+reifyStrictTuple = S.reifyTuple20
src/Data/AdaptiveTuple/AdaptiveTuple.hs view
@@ -1,11 +1,20 @@-{-# LANGUAGE MultiParamTypeClasses, ScopedTypeVariables, DeriveDataTypeable #-}+{-# LANGUAGE+ MultiParamTypeClasses+ ,FlexibleInstances+ ,ScopedTypeVariables+ ,GeneralizedNewtypeDeriving+ ,DeriveDataTypeable #-} module Data.AdaptiveTuple.AdaptiveTuple ( -- *Type classes AdaptiveTuple (..) -- *Types ,AdaptiveTupleException (..)- -- *Error functions+ ,ATuple0+ ,ListTuple+ -- *Functions+ ,makeListTuple+ -- **Error functions ,oObExcp ,insExcp )@@ -16,7 +25,13 @@ import Data.Data import Control.Exception import Control.Applicative+import Control.Arrow+import Control.Monad +-- helper function+fI :: (Integral a, Num b) => a -> b+fI = fromIntegral+ -- |Adaptive tuples: unboxed tuples of varying size. -- @s@ is a type-level indicator of the number of elements in the container. class (Nat s, Applicative (c s)) => AdaptiveTuple c s where@@ -44,4 +59,54 @@ insExcp :: a insExcp = throw ATupleInsufficientInput++-- -------------------------------------+-- basic adaptive tuple types++-- |no-element tuple+data ATuple0 s el = ATuple0 deriving (Eq, Show)++instance Functor (ATuple0 D0) where+ fmap _ _ = ATuple0++instance Applicative (ATuple0 D0) where+ pure _ = ATuple0+ _ <*> _ = ATuple0++instance AdaptiveTuple ATuple0 D0 where+ getIndex _ _ = oObExcp "getIndex"+ setIndex _ _ _ = ATuple0+ mapIndex _ _ _ = ATuple0+ toATuple _ = ATuple0+ fromATuple _ = []+ sequenceAT _ = return ATuple0++-- |A ListTuple is a List with a type-level length.+-- to be used when there isn't a more specific adaptive tuple defined+newtype Nat s => ListTuple s a = ListTuple {getListTuple :: [a]}+ deriving (Eq, Functor, Show)++-- |Create a ListTuple+makeListTuple :: Nat s => s -> [a] -> ListTuple s a+makeListTuple s xs | toInt s Prelude.< length xs =+ error $ "input list to short to make ListTuple of length " +++ (show $ toInt s)+makeListTuple s xs = ListTuple . take (toInt s) $ xs++instance Nat s => Applicative (ListTuple s) where+ pure = pureLT+ a <*> b = ListTuple $ zipWith ($) (getListTuple a) (getListTuple b)++pureLT :: forall s a. (Nat s) => a -> ListTuple s a+pureLT = ListTuple . replicate (toInt (undefined :: s))++instance forall s. (Nat s) => AdaptiveTuple ListTuple s where+ getIndex z i = getListTuple z !! (fI i)+ setIndex i el = ListTuple . uncurry (++) . ((++ [el]) *** drop 1) .+ splitAt (fI i) . getListTuple+ mapIndex f i = ListTuple . uncurry (++) . second (\(x:xs) -> f x : xs) .+ splitAt (fI i) . getListTuple+ toATuple = makeListTuple (undefined :: s)+ fromATuple = getListTuple+ sequenceAT = liftM ListTuple . sequence . getListTuple
src/Data/AdaptiveTuple/Reps/Lazy.hs view
@@ -2,7 +2,13 @@ -- necessary to import this module unless you need to construct -- custom reification functions. -{-# LANGUAGE TemplateHaskell, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, DeriveDataTypeable #-}+{-# LANGUAGE TemplateHaskell+ ,MultiParamTypeClasses+ ,FlexibleInstances+ ,TypeSynonymInstances+ ,Rank2Types+ ,DeriveDataTypeable #-}+ {-# OPTIONS_GHC -fno-warn-unused-binds -fno-warn-unused-matches #-} module Data.AdaptiveTuple.Reps.Lazy@@ -15,7 +21,7 @@ import Language.Haskell.TH (Strict (..)) import Control.Applicative -$(makeDatas NotStrict 20)+$(makeDatas NotStrict 1 20) $(deriveInstances ''ATuple1 ''D1) $(deriveInstances ''ATuple2 ''D2) $(deriveInstances ''ATuple3 ''D3)@@ -36,3 +42,9 @@ $(deriveInstances ''ATuple18 ''D18) $(deriveInstances ''ATuple19 ''D19) $(deriveInstances ''ATuple20 ''D20)++$(makeReify 4)+$(makeReify 8)+$(makeReify 12)+$(makeReify 16)+$(makeReify 20)
src/Data/AdaptiveTuple/Reps/Strict.hs view
@@ -3,7 +3,13 @@ -- It is usually not necessary to import this module except to make custom -- reification functions. -{-# LANGUAGE TemplateHaskell, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, DeriveDataTypeable #-}+{-# LANGUAGE TemplateHaskell+ ,MultiParamTypeClasses+ ,FlexibleInstances+ ,TypeSynonymInstances+ ,Rank2Types+ ,DeriveDataTypeable #-}+ {-# OPTIONS_GHC -funbox-strict-fields -fno-warn-unused-binds -fno-warn-unused-matches #-} module Data.AdaptiveTuple.Reps.Strict@@ -16,7 +22,7 @@ import Language.Haskell.TH (Strict (..)) import Control.Applicative -$(makeDatas IsStrict 20)+$(makeDatas IsStrict 1 20) $(deriveInstances ''ATuple1 ''D1) $(deriveInstances ''ATuple2 ''D2) $(deriveInstances ''ATuple3 ''D3)@@ -37,3 +43,9 @@ $(deriveInstances ''ATuple18 ''D18) $(deriveInstances ''ATuple19 ''D19) $(deriveInstances ''ATuple20 ''D20)++$(makeReify 4)+$(makeReify 8)+$(makeReify 12)+$(makeReify 16)+$(makeReify 20)
src/Data/AdaptiveTuple/TH.hs view
@@ -1,10 +1,18 @@-{-# LANGUAGE TemplateHaskell, MultiParamTypeClasses, FlexibleInstances, FlexibleContexts, UndecidableInstances, DeriveDataTypeable #-}+{-# LANGUAGE+ TemplateHaskell+ ,MultiParamTypeClasses+ ,FlexibleInstances+ ,FlexibleContexts+ ,RankNTypes+ ,UndecidableInstances+ ,DeriveDataTypeable #-} {-# OPTIONS_GHC -funbox-strict-fields -fno-warn-incomplete-patterns #-} module Data.AdaptiveTuple.TH ( makeDatas ,makeData+ ,makeReify ,deriveInstances ,deriveFunctor ,deriveApplicative@@ -27,10 +35,35 @@ -- template type for Q Decls data T1 s a = T1 a --- |Generate "ATuple1" ... "ATupleN"-makeDatas :: Strict -> Int -> Q [Dec]-makeDatas strict n = liftM concat $ mapM (makeData strict) [1..n]+-- |Generate a reification function+makeReify :: Integer -> Q [Dec]+makeReify maxn = do+ let fname = mkName $ "reifyTuple" ++ show maxn+ let basedecl = [d| rf :: forall el r.Int -> [el] -> (forall c s. (AdaptiveTuple c s, T.Nat s) => c s el -> r) -> r; rf 0 xs f = f (toATuple xs :: T1 s el) |]+ d <- basedecl+ let [(SigD _fname typ), _] = d+ let mkclause n = do+ ([xsPat,fPat],[xsExp,fExp]) <- genPE 2+ let tupN = mkName $ "ATuple" ++ show n+ let dN = mkName $ "D" ++ show n+ let atName = [| undefined :: $(appT (appT (conT tupN) (conT dN)) (conT ''() )) |]+ clause [litP (IntegerL n),xsPat,fPat]+ (normalB [| $fExp (helper $atName $xsExp)|]) []+ let defclause = do+ ([nPat,xsPat,fPat],[nExp,xsExp,fExp]) <- genPE 3+ clause [nPat,xsPat,fPat]+ (normalB [| T.reifyIntegral $nExp (\n' -> $fExp (makeListTuple n' $xsExp))|]) []+ cls <- mapM mkclause [0..maxn]+ defcl <- defclause+ return [SigD fname typ, FunD fname (cls++[defcl])] +helper :: (AdaptiveTuple c s, T.Nat s) => c s x -> [el] -> c s el +helper _ = toATuple++-- |Generate "ATupleN" ... "ATupleM"+makeDatas :: Strict -> Int -> Int -> Q [Dec]+makeDatas strict m n = liftM concat $ mapM (makeData strict) [m..n]+ -- |Given a value n >1, create data value "ATupleN" makeData :: Strict -> Int -> Q [Dec] makeData strict n = do@@ -96,14 +129,14 @@ (pf &&& bf)) [0..n] let getClauses (NormalC name fields) = do (aP, aV) <- genPE (length fields)- ([eP],[eV]) <- genPE 1+ ([eP],[_eV]) <- genPE 1 let getPats n = [conP name aP, litP (integerL (fromIntegral n))] let getBody = normalB . (aV !!) let errC = clause [wildP, eP] (normalB [| oObExcp "getIndex" |]) [] c1 <- makeClauseOut (length fields - 1) getPats getBody return (c1 ++ [errC]) let setClauses (NormalC name fields) = do- ([elP,eP], [elV,eV]) <- genPE 2+ ([elP,eP], [elV,_eV]) <- genPE 2 (aP, aV) <- genPE (length fields) let getPats n = [litP (integerL (fromIntegral n)), elP, conP name aP] let getBody n = normalB $ appsE (conE name:replaceAt aV n elV)@@ -111,7 +144,7 @@ c1 <- makeClauseOut (length fields - 1) getPats getBody return (c1 ++ [errC]) let mapClauses (NormalC name fields) = do- ([fP,eP], [fV,eV]) <- genPE 2+ ([fP,eP], [fV,_eV]) <- genPE 2 (aP, aV) <- genPE (length fields) let getPats n = [fP, litP (integerL (fromIntegral n)), conP name aP] let getBody n = normalB $ appsE