2 -> k (k (z (:)))
_ -> error "gunfold"
dataTypeOf _ = listDataType
- dataCast1 = gcast1
+ dataCast1 f = gcast1 f
--
-- The gmaps are given as an illustration.
2 -> k (z Just)
_ -> error "gunfold"
dataTypeOf _ = maybeDataType
- dataCast1 = gcast1
+ dataCast1 f = gcast1 f
------------------------------------------------------------------------------
2 -> k (z Right)
_ -> error "gunfold"
dataTypeOf _ = eitherDataType
- dataCast2 = gcast2
+ dataCast2 f = gcast2 f
------------------------------------------------------------------------------
toConstr _ = error "toConstr"
gunfold _ _ = error "gunfold"
dataTypeOf _ = mkNorepType "Prelude.(->)"
- dataCast2 = gcast2
+ dataCast2 f = gcast2 f
------------------------------------------------------------------------------
gunfold k z c | constrIndex c == 1 = k (k (z (,)))
gunfold _ _ _ = error "gunfold"
dataTypeOf _ = tuple2DataType
- dataCast2 = gcast2
+ dataCast2 f = gcast2 f
------------------------------------------------------------------------------
geq x y = geq' x y
where
- geq' :: forall a b. (Data a, Data b) => a -> b -> Bool
+ geq' :: GenericQ (GenericQ Bool)
geq' x y = (toConstr x == toConstr y)
&& and (gzipWithQ geq' x y)
-- | Generic zip controlled by a function with type-specific branches
-gzip :: (forall a b. (Data a, Data b) => a -> b -> Maybe b)
- -> (forall a b. (Data a, Data b) => a -> b -> Maybe b)
-
+gzip :: GenericQ (GenericM Maybe) -> GenericQ (GenericM Maybe)
-- See testsuite/.../Generics/gzip.hs for an illustration
gzip f x y =
f x y
toConstr _ = error "toConstr"
gunfold _ _ = error "gunfold"
dataTypeOf _ = mkNorepType "Data.IntMap.IntMap"
- dataCast1 = gcast1
+ dataCast1 f = gcast1 f
#endif
toConstr _ = error "toConstr"
gunfold _ _ = error "gunfold"
dataTypeOf _ = mkNorepType "Data.Map.Map"
- dataCast2 = gcast2
+ dataCast2 f = gcast2 f
#endif
dataTypeOf _ = seqDataType
- dataCast1 = gcast1
+ dataCast1 f = gcast1 f
emptyConstr = mkConstr seqDataType "empty" [] Prefix
consConstr = mkConstr seqDataType "<|" [] Infix
toConstr _ = error "toConstr"
gunfold _ _ = error "gunfold"
dataTypeOf _ = mkNorepType "Data.Set.Set"
- dataCast1 = gcast1
+ dataCast1 f = gcast1 f
#endif