I have a pedestal app I am working on. I have made some really helpful (at least to me) use of core.contracts in testing my clojure/clojurescript shared code (in clojure) using test.generative. When I open my code in the browser though and try to bring a namespace that makes use of core.contracts into clojurescript, I get the following error. None of the constraints I wrote actually make use of any native java types (at least I don't think). I am mostly just checking that the values of things align with what I expect in the inputs and outputs.

It is not clear how the docs are expected to be browsed; I suppose that the .org
files should be exported to ./docs/wiki/*.markdown yet not all of them are. I also
suppose that the exported markdown files should be available under https://github.com/clojure/core.contracts/wiki, i.e. pushed to git@github.com:clojure/core.contracts.wiki.git

Some of the problems:

the link "return to documentation" on e.g. "with-constraints" should point to /clojure/core.contracts/wiki, not /clojure/core.contracts/docs.html

if wiki is really exported, the main page should mention it is immutable

links on the home page had one more 'wiki' in them (fixed manually in the wiki - will be overriden by the next export)

ns

The public contracts programming functions and macros for clojure.core.contracts.
Primary usage: defconstrainedfn or contract and with-constraints.
Use provide for functions you don't control.

Other

There are other undocumented or too lightly documented fns/macros that would benefit
from improvements, f.ex.

what does _ do?

provide would benefit from a (even brief) example

require-with-constraints - what is it, when to use?

in - an example would be nice

whitelist - the argument should be 'thing' not 'things' to be consistent with the docstring and the fact that it is a single map/set

an example of using implies, <=>, etc. would be nice - currently I don't really know when/why to use it (not mentioning how) [perhaps in the ns docstring, all this functions docstring having "... see the ns docstring")

why is defconstrainedfn in constraints.clj and not contracts.clj as the other main fns?
Why does provide use "kontracts" instead of "c" as with-constraints does? (The mismatch of "constraint" and "contract" - fn is with-constraints but takes contracts - is in itself confusing but that is another story.)

defconstrainedrecord has no doc

I would be really happy if at least some of these improvements were applied. I believe it would help to spread contract programming more.