Popularity
5.2
Declining
Activity
0.0
Stable
5
5
2
Monthly Downloads: 6
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
Tags:
Generics
genifunctors alternatives and similar packages
Based on the "Generics" category.
Alternatively, view genifunctors alternatives based on common mentions on social networks and blogs.
-
Capabilities
A Haskell library providing separation of effects on the type level, effectively splitting up the monolithic IO-monad into more limited capabilities. -
xformat
Extensible, typed, scanf- and printf-like functions for formatted reading and showing in Haskell
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
Promo
coderabbit.ai

Do you think we are missing an alternative of genifunctors or a related project?
README
Generate (derive) generalized fmap
, foldMap
and traverse
for Bifunctors
,
Trifunctors
, or a functor with any arity
Example:
data U a b c d
= L [U a b c d] -- polymorphic recursion
| M (V (a,b) (Either c d)) -- mutually recursive
| a :+: Int -- infix syntax, record syntax, type synonyms
| R { c :: c, d :: String } -- and primitive data types supported
data V u v = X (U v v u u) | Z u
fmapU :: (a -> a') -> (b -> b') -> (c -> c') -> (d -> d') ->
U a b c d -> U a' b' c' d'
fmapU = $(genFmap ''U)
foldU :: Monoid m => (a -> m) -> (b -> m) -> (c -> m) -> (d -> m) ->
U a b c d -> m
foldU = $(genFoldMap ''U)
travU :: Applicative f =>
(a -> f a') -> (b -> f b') -> (c -> f c') -> (d -> f d') ->
U a b c d -> f (U a' b' c' d')
travU = $(genTraverse ''U)