Popularity
5.5
Declining
Activity
0.0
Stable
5
4
3
Monthly Downloads: 18
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-records
Generically derive traversals, lenses, and prisms. -
generic-lens
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 -
generic-override-aeson
Override instances used by Haskell's generic derivation -
generics-eot
A library for generic programming that aims to be easy to understand -
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 -
geniplate-mirror
Use TH to generate uniplate-like functions. -
Strafunski-StrategyLib
Cabalized version of the StrategyLib library from Strafunski -
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 -
projection
Projection function for arbitrarily nested binary product types. -
church
Automatically convert Generic instances to and from church representations -
Annotations
Constructing, analyzing and destructing annotated trees -
deriving-show-simple
Derive a Show instance without field selector names -
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
Static code analysis for 29 languages.
Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.
Promo
www.sonarqube.org
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)