These are chat archives for ramda/ramda
You can go years just using Ramda without getting into the ADTs. Initially, it helps to just break up your codebase into small functions, then using stuff like compose and reduce to combine the pieces as necessary.
It helps to separate out your domain specific code from code that operates on structures (map being a good example of the latter). You’ll find that there are lot of patterns involved in, e.g. creating a handler, that you can abstract into functions that don’t need to understand anything about the domain you’re dealing with.
Eventually you’ll find that certain patterns could become easier if you just could encode some of your information into the types you are using.
A lot of people like using Either to handle errors, but it is great for any type of conditional logic, as well as short circuiting computations. Likewise, Reader can be used to inject configuration into your app, similar to Dependency injection but much simpler.
Because these things are all Monads, a lot of your structural code can now operate on any of them without having to change any code