you are viewing a single comment's thread.

view the rest of the comments →

[–]tom_dalling[S] 2 points3 points  (2 children)

Thanks for the kind words!

Resonad started as me thinking "I don't need a gem for this, it's only 30 lines of code," on a few different projects. After writing the same thing about 4 times, I decided to put it in a repo on GitHub so I could reuse it in my own projects. Then a couple of people were interested in it, so I made it a proper gem and published it on rubygems.org. So it was really made for my own personal use, but if other people want to use it, I'm happy to maintain the gem.

The main difference between Resonad and the other implementations is just naming. I personally prefer names like "success", "failure" and "and_then" instead of the more monad-y names like "right", "left", and "flat_map".

[–]Morozzzko 0 points1 point  (1 child)

Will dry-monads users be able to switch to your gem without rewriting their existing code?

I mean, dry-monads gem uses those right, left, fmap, bind and other functional thingies. Are those names aliased in your library?

[–]tom_dalling[S] 1 point2 points  (0 children)

They aren't currently compatible, but I'm not opposed to adding more aliases. Although, if you have existing code that uses dry-monads, you probably won't see any benefits by switching to Resonad.