Haskell Comonads

Open-source Haskell projects categorized as Comonads | Edit details

Top 23 Haskell Comonad Projects

  • proto-lens

    API for protocol buffers using modern Haskell language and library patterns.

  • microlens

    A lightweight (but compatible with ‘lens’) lenses library

    Project mention: microlens is looking for a new maintainer | reddit.com/r/haskell | 2022-05-08

    microlens is a tiny van Laarhoven lenses library, mostly just copying definitions from lens and trying to avoid dependencies as much as possible. It has gained some popularity (742 package downloads in the last 30 days, vs the 1724 of the original lens).

  • SonarQube

    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.

  • msgpack

    Haskell implementation of MessagePack / msgpack.org[Haskell]

  • store

    Fast binary serialization in Haskell (by mgsloan)

  • file-embed

    Use Template Haskell to embed file contents directly.

  • comonad

    Haskell 98 comonads

  • semigroupoids

    Project mention: Folding Nonempty Structures In Haskell | reddit.com/r/haskell | 2021-07-22

    obligatory shoutout to semigroupoids 🤘

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • fclabels

    First class composable record labels for Haskell.

  • kan-extensions

    Kan extensions, Kan lifts, the Yoneda lemma, and (co)monads generated by a functor

  • data-category

    Library of categories, with categorical constructions on them

    Project mention: Monthly Hask Anything (October 2021) | reddit.com/r/haskell | 2021-10-02

    Even a fairly simple statement like "F preserves direct limits over N" is basically impossible to express like this. You can step further from Hask and work at the type level until the very end (which I believe is the approach taken by data-category), you can resign yourself to only expressing things that can be "defunctionalized" (an appropriate use of the term, I think, if not a correct one) down to Haskell functions, which gets you (Co)Yoneda, Lan, Ran, etc. in the general case and I think Traversable in this particular instance, or you can take some intermediate approach with constrained functions and/or explicit witnesses in your data types, but you can't make proper category theory "just work" the way it should.

  • base64-bytestring

    Fast base64 encoding and decoding for Haskell.

    Project mention: Yatima: A programming language for the decentralized web | news.ycombinator.com | 2021-06-07

    Sure, if you consider Haskell's runtime (I know that technically GHC /= Haskell, but in practice it's the only Haskell that matters, except maybe something like Asterius) all the primitives are backed by C libraries: https://hackage.haskell.org/package/ghc-prim-

    Likewise with conventions around pointers, arrays, etc. to the point where if you want to do anything really low-level or performance sensitive in Haskell, you're essentially punching a hole into C. As a random example, within the fast base64bytestring library, you find lots of use of `malloc`, `ForeignPtr` etc.: https://github.com/haskell/base64-bytestring/blob/master/Dat... And of course because this is C there aren't really many safety guarantees here.

    The plan with Yatima with its primitives, and eventually when we write an FFI is to integrate with Rust in the same way that Haskell uses C. My hope is that with Yatima's affine types we might even be able to FFI to and from safe Rust (since the borrow checker uses affine types), but this is a little bit of a research project to see how much that works. Even to unsafe Rust though, we have better safety guarantees than C, since unsafe Rust's UB is still more restricted than C's is.

  • union

    Extensible type-safe unions for Haskell

  • buffer-builder

    Haskell library for efficiently building up buffers

  • interpolatedstring-perl6

    QuasiQuoter for Perl6-style multi-line interpolated strings with q, qq and qc support.

  • exinst

  • asn1-encoding

    ASN1 Raw/BER/DER/CER reader/writer in haskell

  • irc

    Haskell irc library

  • bimap

    Bidirectional mapping between two key types

  • streams

    Haskell 2010 stream comonads (by ekmett)

    Project mention: How Long is your List? | reddit.com/r/haskell | 2022-01-17

    FWIW, there are quite a few libraries on Hackage implementing the infinite Stream type. When I looked in to this last year, u/edwardkmett's streams was the only one that seemed to be maintained.

  • folds

    Folds and sequence algebras

  • monoid-extras

    Miscellaneous constructions on monoids

  • histogram-fill

    Filling and manupulation with histograms

  • total-map

    Finitely represented /total/ maps

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2022-05-08.

Haskell Comonads related posts


What are some of the best open-source Comonad projects in Haskell? This list will help you:

Project Stars
1 proto-lens 402
2 microlens 267
3 msgpack 128
4 store 102
5 file-embed 81
6 comonad 72
7 semigroupoids 70
8 fclabels 66
9 kan-extensions 65
10 data-category 47
11 base64-bytestring 40
12 union 30
13 buffer-builder 25
14 interpolatedstring-perl6 24
15 exinst 22
16 asn1-encoding 20
17 irc 20
18 bimap 20
19 streams 18
20 folds 17
21 monoid-extras 17
22 histogram-fill 17
23 total-map 13
Find remote jobs at our new job board 99remotejobs.com. There are 7 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives