2020-12-17 20:46:49 +01:00
|
|
|
# Utilities for composing functions in Typed Racket
|
|
|
|
|
2020-12-18 11:00:00 +01:00
|
|
|
[Typed Racket](https://docs.racket-lang.org/ts-guide/)'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.
|
2020-12-17 21:09:31 +01:00
|
|
|
|
|
|
|
This package is distributed under the [GNU GPLv3
|
|
|
|
licence](https://www.gnu.org/licenses/quick-guide-gplv3.html).
|
2021-01-10 18:29:02 +01:00
|
|
|
|
2021-01-10 18:50:26 +01:00
|
|
|
## Contributing
|
2021-01-10 18:29:02 +01:00
|
|
|
|
|
|
|
Contributions, comments, bug reports, etc. are very welcome!
|
|
|
|
|
|
|
|
For [ethical
|
|
|
|
reasons](https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish),
|
|
|
|
I prefer not to host this package on
|
|
|
|
[GitHub](https://en.wikipedia.org/wiki/GitHub#Acquisition_by_Microsoft).
|
2021-01-10 18:50:26 +01:00
|
|
|
Luckily, Git allows creating and submitting patches by E-mail very
|
2021-01-10 18:29:02 +01:00
|
|
|
easily. Here is a simple workflow that you can use to contribute to
|
|
|
|
this library.
|
|
|
|
|
2021-01-10 18:50:26 +01:00
|
|
|
### Submitting patches
|
2021-01-10 18:29:02 +01:00
|
|
|
|
|
|
|
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:
|
|
|
|
|
2021-01-10 18:50:26 +01:00
|
|
|
### Style guidelines
|
2021-01-10 18:29:02 +01:00
|
|
|
|
2021-01-10 18:50:26 +01:00
|
|
|
When submitting changes, try to make them as similar as possible in
|
2021-01-10 18:29:02 +01:00
|
|
|
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.
|
2021-01-10 18:29:34 +01:00
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
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/](https://www.gnu.org/licenses/).
|