Previously, function types looked something like
U_n|V_n
S ---------> T where n is a natural number representing
∅ a function argument by its index
They now look like
U_(n,m)|V_(n,m)
S -----------------> T where the pair indicates the mth argument
∅ bound by a function n lambdas away
This allows the use of curried predicates in occurrence typing
The only thing that doesn't work is to make them show in descending
order, and I'm giving up on that. Might be some apache bug in its
propagation of IndexOptions. It might be possible to do it with some JS
hackery, if someone cares enough about it.
* Use helper functions to construct list types and simple function types.
These are extremely common and their serialization is verbose.
* Split unions into numeric and non-numeric parts for serialization.
Often numeric types have simple representations, and the union is
polluted by one extra non-numeric type.
* Use the raw `sort` procedure to avoid keyword expansion
NB: This doesn't affect zo size, only expanded code size.
Saves 300k on zo files in `math`.
Sorting downloads into categories involves encodings within the
build name: "|" is for hierarchy, and "{...}" affects sorting
but is stripped from the displayed name.
It allows programmer to ommit unnecessary double string<->bytes
conversion when repeating input from the user.
Signed-off-by: Jan Dvořák <mordae@anilinux.org>
HTML5 defines input types such as "email" or "date".
Provide a generic formlet so that we don't have to cover this
ever-growing set piece-by-piece.
Signed-off-by: Jan Dvořák <mordae@anilinux.org>
- better overview docs (now in the drracket manual)
- something inside the drracket gui to get the list of the
available style names and to send you to the new docs