typed-compose/README.md

90 lines
3.1 KiB
Markdown
Raw Normal View History

2020-12-17 20:46:49 +01:00
# Utilities for composing functions in Typed Racket
[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 `typed-compose.scrbl` accordingly. I believe that good
2021-01-10 18:29:02 +01:00
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/).