Popularity
2.8
Growing
Activity
0.0
Stable
3
2
1
Monthly Downloads: 3
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
Tags:
Data
Latest version: v0.0.1.0
recursion-schemes-ix alternatives and similar packages
Based on the "Data" category.
Alternatively, view recursion-schemes-ix alternatives based on common mentions on social networks and blogs.
-
lens
Lenses, Folds, and Traversals - Join us on web.libera.chat #haskell-lens -
semantic-source
Parsing, analyzing, and comparing source code across many languages -
hnix
A Haskell re-implementation of the Nix expression language -
code-builder
Packages for defining APIs, running them, generating client code and documentation. -
text
Haskell library for space- and time-efficient operations over Unicode text. -
cassava
A CSV parsing and encoding library optimized for ease of use and high performance -
unordered-containers
Efficient hashing-based container types -
compendium-client
Mu (μ) is a purely functional framework for building micro services. -
massiv
Efficient Haskell Arrays featuring Parallel computation -
holmes
A reference library for constraint-solving with propagators and CDCL. -
hashable
A class for types that can be converted to a hash value -
binary
Efficient, pure binary serialisation using ByteStrings in Haskell. -
resource-pool
A high-performance striped resource pooling implementation for Haskell -
primitive
This package provides various primitive memory-related operations. -
network-msgpack-rpc
A MessagePack-RPC Implementation -
hashtables
Mutable hash tables for Haskell, in the ST monad -
json-autotype
Automatic Haskell type inference from JSON input -
discrimination
Fast linear time sorting and discrimination for a large class of data types -
certificate
Certificate and Key Reader/Writer in haskell -
IORefCAS
A collection of different packages for CAS based data structures. -
reflection
Reifies arbitrary Haskell terms into types that can be reflected back into terms -
dependent-sum
Dependent sums and supporting typeclasses for comparing and displaying them -
audiovisual
Extensible records, variants, structs, effects, tangles -
dependent-map
Dependently-typed finite maps (partial dependent products) -
text-icu
This package provides the Haskell Data.Text.ICU library, for performing complex manipulation of Unicode text. -
orgmode-parse
Attoparsec parser combinators for parsing org-mode structured text! -
streaming
An optimized general monad transformer for streaming applications, with a simple prelude of functions -
protobuf
An implementation of Google's Protocol Buffers in Haskell. -
avro
Haskell Avro Encoding and Decoding Native Support (no RPC) -
safecopy
An extension to Data.Serialize with built-in version control -
bifunctors
Haskell 98 bifunctors, bifoldables and bitraversables -
typerep-map
⚡️Efficient implementation of Map with types as keys -
uuid-types
A Haskell library for creating, printing and parsing UUIDs -
scientific
Arbitrary-precision floating-point numbers represented using scientific notation -
uuid
A Haskell library for creating, printing and parsing UUIDs
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 recursion-schemes-ix or a related project?
README
recursion-schemes-ix
Recursion schemes over indexed datatypes
Heavily inspired by multirec
, this library uses PolyKinds
and SingI
constraints to achieve the same dependent typing as multirec
.
This library defines the IFunctor
typeclass and recursion-schemes
on IFunctor
s.
Goals:
- Minimal dependencies
- This library depends only on
singlethongs
, which in turn only depends ontemplate-haskell
. As a result, it should be easy to include in any project
- This library depends only on
- GHCJS compatibility
- This package is used in a compiler that I want to be able to run in the browser
- Ease of use
- Once everything is set-up, writing a recursion-scheme should not be
overly complex (looking at you,
mulrirec
)
- Once everything is set-up, writing a recursion-scheme should not be
overly complex (looking at you,
Non-Goals:
- Eliminating boilerplate
- This library requires hand-written
IShow
,IRead
,IEq
,IOrd
,ITraversable
instances. I also recommend writing pattern synonyms to remove theIFix
constructor. Writing these can be a pain, but its only required once for the main data structure, and oneIFunctor
instance whenever you write a dependent recursion-scheme.
- This library requires hand-written
- Speed
- The code in the library mimics the
recurion-schemes
library almost directly, simply lifting everything up from*
tok -> *
. In a future release,INLINE
pragmas will be added and possibly benchmarked.
- The code in the library mimics the
Documentation
Not written, but haddocks on the github user site.