Bruno Dutra
[...]
I totally get it, there's nothing wrong with the design, very much on the contrary, however, I fear Hana's generality could be too overwhelming for many potential users.
What if the documentation presented Hana without mentioning the abstract concepts at first, focusing on the minimum set of well known algorithms which could get any simple job done, then, at a section called " Advanced Hana" (Advanced Black Magic would be even more precise ;)) hana could be presented once again, but this time with all those concepts in hand? I think this way it would be much more didactic.
Isn't the tutorial already built like that? From my POV at least, the tutorial gently introduces the library without ever mentioning the word Functor/Monad, and the rest is left to the reference. However, the tutorial could arguably contain an introduction to those concepts, which would also act as a rationale for ditching more classic/less general non-FP concepts. I think reorganizing the reference documentation so that concepts stand on their own and algorithms stand on their own would also help a lot. This way, you wouldn't have to really understand the "black magic" to get down to work, but if you want to extend the library then you would still benefit from having very general concepts.
[...] I think there is some desire from the community to have a very simple library providing tuple algorithms, without concepts and anything else. I can understand that, and I will see if Hana can be modularized in a way that makes the core functionality usable without the rest of it.
However, I am under the impression that it would be better to simply create a separate library. I'll make some experiments and time will tell.
Perhaps, instead of actually splitting Hana, it would suffice for now to "logically" segregate the more advanced concepts in the documentation, as I suggested above.
Yes, this.
[...]
Regards, Louis