this repo has no description
1opam-version: "2.0"
2maintainer: "Petter A. Urkedal <paurkedal@gmail.com>"
3authors: "Petter A. Urkedal <paurkedal@gmail.com>"
4license: "LGPL-3.0-only WITH OCaml-LGPL-linking-exception"
5homepage: "https://github.com/paurkedal/ppx_compose"
6bug-reports: "https://github.com/paurkedal/ppx_compose/issues"
7depends: [
8 "ocaml" {>= "4.02.3"}
9 "dune" {>= "1.1"}
10 "ocaml-migrate-parsetree" {>= "1.5.0" & < "2.0.0"}
11]
12build: [
13 ["dune" "build" "-p" name "-j" jobs]
14 ["dune" "runtest" "-p" name "-j" jobs] {with-test}
15]
16dev-repo: "git+https://github.com/paurkedal/ppx_compose.git"
17synopsis: "Inlined function composition"
18description: """
19`ppx_compose` is a simple syntax extension which rewrites code containing
20function compositions into composition-free code, effectively inlining the
21composition operators. The following two operators are supported
22
23 let (%) g f x = g (f x)
24 let (%>) f g x = g (f x)
25
26Corresponding definitions are not provided, so partial applications of `(%)`
27and `(%>)` will be undefined unless you provide the definitions.
28
29The following rewrites are done:
30
31 * A composition occurring to the left of an application is reduced by
32 applying each term of the composition from right to left to the
33 argument, ignoring associative variations.
34
35 * A composition which is not the left side of an application is first
36 turned into one by η-expansion, then the above rule applies.
37
38 * Any partially applied composition operators are passed though unchanged.
39
40E.g.
41
42 h % g % f ==> (fun x -> h (f (g x)))
43 h % (g % f) ==> (fun x -> h (f (g x)))
44 (g % f) (h % h) ==> g (f (fun x -> h (h x)))
45"""
46url {
47 src:
48 "https://github.com/paurkedal/ppx_compose/releases/download/v0.1.0/ppx_compose-v0.1.0.tbz"
49 checksum: [
50 "sha256=87f063215e9f06d4433302f492fb35c72b25f09737ba748d9df3542f562f9a7f"
51 "sha512=7c8c14f5b28c5173e74bec8176b59697cc1ec7f48ccbbab4656b083259fde6666b4399a74b13fc3605d50cb48ff4c11ff8b96fafa6ef4af5613eab5ccf5a49f1"
52 ]
53}