Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Extending protocol-monads #7

Open
michaelsbradleyjr opened this issue Nov 19, 2012 · 0 comments
Open

Extending protocol-monads #7

michaelsbradleyjr opened this issue Nov 19, 2012 · 0 comments

Comments

@michaelsbradleyjr
Copy link

Hi, Jim!

I've had a blast the last few weeks in my continued study of and work on your protocol-monads library. Just last night, I capped off my recent work by creating a 1.1.0-SNAPSHOT branch and deploying it to my clojars account, to facilitate internal reuse and tire-kicking.

GitHub makes it fairly easy to compare branches between forks of the same project:

michaelsbradleyjr/protocol-monads@jduey:master...1.1.0-SNAPSHOT

What I plan to do is take a day and compose a gist detailing the changes I made, my motivations for making them, and questions that arose during my work. There will be a lot (!!) to it, as I've made more than a few adjustments, and in the process of learning and coding I came upon all sorts of interesting possibilities and quandaries which would benefit from your insights.

I don't think I will have time to do the write-up this week, but I wanted to at least point you to my current work (that's why I've submitted this issue).

I'll go ahead and make a few quick points and ask a question ... question first:

License

Would you be willing to indicate a license for protocol-monads?

I think EPLv1 would be appropriate: it's the "standard license" in the world of open source Clojure projects; also, your project seems to be partially derived from algo.monads, and that library is licensed under EPLv1, and thus the "derivative work" terms may be applicable.

Notes

There is a NOTES.md file in my fork of protocol-monads. It outlines some (but not all) of the questions and possibilities I alluded to above. It needs to be cleaned up, since I've already taken action on some of the points therein. I'll do that clean-up on the same day I do the write-up.

Changes you may not agree with

I've renamed some things, re-organized parts of the library and test suite, etc. I don't expect that you will agree to everything I've changed and that's fine, since I don't expect that you will simply merge in all my commits. I'll provide more context in the write-up and then you can decide what changes of mine to keep or not. And if you end up deciding to take protocol-monads in a different direction, that's great too, since that's the beauty of open source development -- a fork can diverge from its parent project, and there's no harm done.

Lots more tests

I expanded the test suite. The code coverage is pretty good, I think, and writing the additional tests was a good learning exercise.

Examples

I've roughly ported the examples from Hinsen's algo.monads library:

protocol-monads/src/monads/examples.clj

Only the outputs of examples ex25, ex26 and ex27 diverge from their algo.monads counterparts, and this is owing to some decisions I made in my work on the factory function and bind method for monads.core.MaybeTransformer. I will provide more of an explanation in the forthcoming write-up.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant