profunctors
Haskell 98 Profunctors (by ekmett)
concat
Compiling to Categories (by compiling-to-categories)
profunctors | concat | |
---|---|---|
4 | 3 | |
69 | 429 | |
- | 0.0% | |
4.3 | 7.3 | |
2 months ago | 2 months ago | |
Haskell | Haskell | |
GNU General Public License v3.0 or later | BSD 3-clause "New" or "Revised" License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
profunctors
Posts with mentions or reviews of profunctors.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-10-03.
-
How to use PostgreSQL with Haskell: hasql
We’ll also use contravariant-extras, vector, profunctors, and tuple packages to make a few things tidier (this isn’t required; it’s all copy-paste anyway).
-
The Haskell Unfolder Episode 2: quantified constraints
Edward Kmett already added a superclass to Profunctor, but releasing this got stalled
-
Alternative to arrows?
One of the main problems with the Arrow hierarchy is that it’s not particularly well-factored. The main Arrow class has five methods, which is both intimidating to newcomers and indicative that there’s some decomplection that can be done. I think the best alternative is to use the profunctors package; it deals much more fluently with things that can take values and then return them (functions, Kleisli arrows, etc). For example, the Arrow class is broken down across Profunctor and Strong. I had a term rewriting engine that used arrows, and I was never really happy with it until I moved it to profunctors.
-
Why kind-level foralls don't interact with ScopedTypeVariables
Indeed, that is a somewhat contrived example that is meant to illustrate that ScopedTypeVariables aren't just limited to standalone type signature declarations—they can also be used in arbitrary subexpressions as well. Whether you prefer to use type signature declarations or expression type signatures largely depends on your personal tastes, but both styles are used in the "real world". For instance, here is one example of a use of expression type signatures + ScopedTypeVariables in the profunctors library.¹
concat
Posts with mentions or reviews of concat.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-20.
-
Code generation with Haskell itself as the DSL
One step further is then (Compiling to Categories)[https://github.com/compiling-to-categories/concat] which tries to make the previous approach more convenient. It aims to overload any Haskell function from a -> b into a Category a b. Then, typeclass instances are used to transfrom those functions into virtually anything. While this project is very interesting, it is probably the most experimental one. You can also take a look at the overloaded package or at this novel categorifier plugin.
-
Is there an implementation of The Simple Essence of Automatic Differentiation (2018)?
I believe it is here: https://github.com/compiling-to-categories/concat
-
Alternative to arrows?
I still dream of an Arrow-inspired contender to the throne of do notation (both for Monads and Applicatives), but proc isn't it, at least not with its current desugaring. Even more exciting to think about a variant of proc that does some concat-like magic and replaces arr with something that still allows complex data routing while exposing more structure than an opaque a -> b.
What are some alternatives?
When comparing profunctors and concat you can also consider the following projects:
stratum-tool - Command-line tool for communicating with Electrum server
categorifier - Interpret Haskell programs into any cartesian closed category.
groupoids - Haskell 98 Groupoids
knossos-ksc - Compiler with automatic differentiation
sorty - Small sort utility
kernmantle - Braiding extensible effects together in a pipeline/workflow of tasks
GPX - GPS eXchange Parser
confsolve - Generalized file conflict resolving tool.
headroom - ©️ Manager for license headers in source code files.
representable-profunctors - Representable profunctors
mmark-cli - Command line interface to the MMark markdown processor
readline-statevar - readline-statevar: Haskell readline wrapper library with variables (setX/getY) wrapped in state vars
profunctors vs stratum-tool
concat vs categorifier
profunctors vs groupoids
concat vs knossos-ksc
profunctors vs sorty
concat vs kernmantle
profunctors vs GPX
profunctors vs confsolve
profunctors vs headroom
profunctors vs representable-profunctors
profunctors vs mmark-cli
profunctors vs readline-statevar