Utilities for function composition in Typed Racket.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Sergiu Ivanov 69de457613 manual: Add the documentation for make-compose. 1 week ago
COPYING Fully comply with how GPL should be specified. 1 month ago
README.md README: Fixes. 2 weeks ago
info.rkt typed-compose.scrbl -> manual.scrbl 4 weeks ago
main.rkt Provide `make-compose` macro and refactor `compose-n` implementations 1 week ago
manual.scrbl manual: Add the documentation for make-compose. 1 week ago


Utilities for composing functions in Typed Racket

Typed Racket's compose only takes two arguments, because in general it is difficult to specify that the return types and the argument types should be the same for two successive functions in the argument list. This package defines some further utilities to allow compose-ing more than two functions more comfortable in Typed Racket.

This package is distributed under the GNU GPLv3 licence.


Contributions, comments, bug reports, etc. are very welcome!

For ethical reasons, I prefer not to host this package on GitHub. Luckily, Git allows creating and submitting patches by E-mail very easily. Here is a simple workflow that you can use to contribute to this library.

Submitting patches

Start by checking out this repository:

git clone https://git.marvid.fr/scolobb/typed-compose.git
cd typed-compose

Start a new branch my-contribution for you contribution:

git checkout -b my-contribution

Hack hack hack, do a couple commits, maybe take a look at a list of the commits your branch my-contribution contains:

git log --pretty=oneline master..my-contribution

Now create one patch file for every commit added to branch my-contribution, which is new with respect to master:

git format-patch master

This should produce one patch file for commit, e.g. 0001-Commit-1.patch, 0002-Commit-2.patch, etc. Send all of these files to me to scolobb at marvid.fr, or to any other address you think you can contact me at. I will give you feedback and we will work together towards getting your changes in, which is a fancy way of saying that I will probably take in your changes without too much hassle if they follow some very basic style guidelines. Speaking of which:

Style guidelines

When submitting changes, try to make them as similar as possible in style to the existing code, which approximately follows the style used across the Racket code base. If you use Emacs with Racket Mode or DrRacket, you should be fine with default settings.

When adding new code, please consider updating the Scribble documentation manual.scrbl accordingly. I believe that good documentation is more important than good code, because with good docs you can at least know how to fix the whole thing.


This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.