recursion-schemes VS unliftio

Compare recursion-schemes vs unliftio and see what are their differences.


Generalized bananas, lenses and barbed wire (by ekmett)


The MonadUnliftIO typeclass for unlifting monads to IO (by fpco)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
recursion-schemes unliftio
20 5
334 150
0.3% 0.0%
4.9 3.9
16 days ago 3 months ago
Haskell Haskell
BSD 2-clause "Simplified" License MIT 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.


Posts with mentions or reviews of recursion-schemes. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-05.
  • -❄️- 2023 Day 4 Solutions -❄️-
    143 projects | /r/adventofcode | 5 Dec 2023
    Reasonably proud of my part 2 solution, although would like to try using a recursion scheme rather than unstructured recursion:
  • Interactive animations
    11 projects | /r/haskell | 6 May 2023
    Yeah, that project is pretty much at the bottom of my list, unfortunately. My top projects these days are mgmt, klister, recursion-schemes, and hint... And that's already too much!
  • Is there a way to avoid call overhead?
    5 projects | /r/rust | 10 Sep 2022
    Maybe I didn't link the best post. It is unfortunately the only one I know that uses Rust. If you are able to read Haskell, the documentation for the recursion-schemes package might be a better resource?
  • So you come across an undocumented library…
    2 projects | /r/haskell | 16 Nov 2021
    But wait, there's more! One of the two challenges was the recursion-schemes library. I wrote some examples, but the output I was getting from that example was not what I expected. I dug further, and it turned out to be a bug in the library! In addition to the documentation, I thus also worked on a fix for that bug.
    2 projects | /r/haskell | 16 Nov 2021
    It's a pretty complicated bug, documented in details at
  • Beautiful ideas in programming: generators and continuations
    2 projects | | 3 Aug 2021
    It’s also trivial and easy in Haskell — you just need an instance of `Foldable` or `Traversable` on your collection, and then you can fold or traverse it in a configurable way. Or for recursive structures, use Or even just pass a traversal function as an argument for maximum flexibility.
  • Seeking a Project Lead for Matchmaker - Haskell Foundation
    3 projects | /r/haskell | 26 Jul 2021
    Yes please! Right now all of my open-source projects (most notably hint and recursion-schemes) are about to drop into barely-updated mode, and while I knew this would happen and have been working towards finding co-maintainers, I am now realizing that it wasn't enough. I think such a website would definitely have helped, and I am hoping that once it launches, I'll be able to use it to find some co-maintainers to tide over my projects until I become available again.
  • Question about composing functors, functor products, comonads and recursion schemes
    2 projects | /r/haskell | 1 Apr 2021
    I wouldn't bother with gfold, it's broken and rarely used. I'd start from a simpler implementation of zygo:


Posts with mentions or reviews of unliftio. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-10-14.

What are some alternatives?

When comparing recursion-schemes and unliftio you can also consider the following projects:

distributed-process-platform - DEPRECATED (Cloud Haskell Platform) in favor of distributed-process-extras, distributed-process-async, distributed-process-client-server, distributed-process-registry, distributed-process-supervisor, distributed-process-task and distributed-process-execution

record - Anonymous records

machines - Networks of composable stream transducers

pipes-core - Compositional pipelines

chr-core - Constraint Handling Rules

freer-simple - A friendly effect system for Haskell

rank2classes - Grammatical parsers - combinator library for parsing general context-free grammars

conduit-combinators - Type classes for mapping, folding, and traversing monomorphic containers

lifted-base - IO operations from the base library lifted to any instance of MonadBase or MonadBaseControl

effect-monad - Provides 'graded monads' and 'parameterised monads' to Haskell, enabling fine-grained reasoning about effects.

mmorph - Monad morphisms

retry - Retry combinators for monadic actions that may fail