Popularity
5.5
Growing
Activity
0.0
Stable
5
5
2
Monthly Downloads: 3
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.
-
generic-lens
Generically derive traversals, lenses, and prisms. -
generic-records
Generically derive traversals, lenses, and prisms. -
generic-deriving
Generic programming library for generalised deriving. -
uniplate
Haskell library for simple, concise and fast generic operations. -
records-sop
Experimental implementation of generic record subtyping -
generics-eot
A library for generic programming that aims to be easy to understand -
generic-override-aeson
Override instances used by Haskell's generic derivation -
Capabilities
A Haskell library providing separation of effects on the type level, effectively splitting up the monolithic IO-monad into more limited capabilities. -
GenericPretty
A generic, derivable, haskell pretty printer - Research project, summer of 2011 -
generic-lens-labels
GHC.OverloadedLabels.IsLabel instance for lenses from ghc-generics -
compdata-param
Haskell library implementing parametric compositional data types. -
instant-generics
Code repository for the instant-generics library -
Strafunski-StrategyLib
Cabalized version of the StrategyLib library from Strafunski -
geniplate-mirror
Use TH to generate uniplate-like functions. -
text-generic-pretty
A generic, derivable, haskell pretty printer - Research project, summer of 2011 -
xformat
Extensible, typed, scanf- and printf-like functions for formatted reading and showing in Haskell -
regular-extras
Code repository for the regular-extras library -
Annotations
Constructing, analyzing and destructing annotated trees -
projection
Projection function for arbitrarily nested binary product types. -
deriving-show-simple
Derive a Show instance without field selector names -
church
Automatically convert Generic instances to and from church representations -
compdata-fixplate
Compdata basics implemented on top of Fixplate -
generic-optics-lite
Monomorphic field opics like with generic-lens -
generic-lens-lite
Monomorphic field lens like with generic-lens
Updating dependencies is time-consuming.
Solutions like Dependabot or Renovate update but don't merge dependencies. You need to do it manually while it could be fully automated! Add a Merge Queue to your workflow and stop caring about PR management & merging. Try Mergify for free.
Promo
blog.mergify.com
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)