Add some type declarations and do some cleanup.
Add some type declarations and do some cleanup.

Untested, but the previous version was invalid, so I'm not too worried

With types you kind of have to strike a balance between user readability
and readability by program analyzers, and with the latter there's
another question, of how much information to include. In the limit,
especially, a function type totally specifies the function's behavior.

I've tried to do ok mixing up all of these. This involves a lot of
deftypes, but I don't think that should be too concerning. Many but not
all of these types mostly correspond to definitions from the CLHS
glossary and I have marked them as such.

Cleanup stuff: Fixed invalid use of &key in function types, a few very
slightly wrong definitions, etc.

Content stuff: Added the rest of "F" alphabetically.

Last philosophical note - would be nice to have these types both spread
out with the function definitions, and in a centrally accessible area.
Possibly something like pjb's computer-readable Lisp specification.

clasp-developers/SICL,clasp-developers/SICL,clasp-developers/SICL,vtomole/SICL,vtomole/SICL,vtomole/SICL,vtomole/SICL,clasp-developers/SICL