* remove unreferenced `existential2.hs`
* remove `existential_records.hs` which didn't use existentials
* update `existential.hs` to use record notation
* Refactor type hole and partial types sections
Type holes are discussed in the `basics` section. The related concept of
partial types is discussed in the `extensions` section. I reorganized
the discussion of both type holes in declarations and wildcards in
signatures to the `basics` section. I leave a short description of how
the `PartialTypeSignatures` extension in the `extensions` section.
I also added the the code used in these sections to `src`.
* Minor typo corrections
* Move "Type Inference" from extensions to basics
The extensions section begins by categorizing the general types of
extensions. The reader then expects a more detailed introduction to each
extension, which is indeed the general form of the following material.
However, immediately after the extensions section intro, an ectopic
section on type inference begins.
The reason for the type inference section being here isn't at all clear,
so I moved it to the `basics` section.
Following the type inference subsection, is a subsection on the
monomorphism restriction. Here an extension is introduced, but the
material logically groups with type inference. So I merged this section
with the type inference in the `basics` section. In a following commit,
I will add a succinct description of the `NoMonomorphismRestriction`
extension to the extensions section, it will reference the related
material in `basics`.
* Add NoMonomorphismRestriction extension
* Make extension section names uniform
Most of the section names in the `extension` section are exactly the
same as the GHC extension they describe, e.g. `OverlappingInstances`,
but a few add spaces or miss words. I've made them all consistent.
I also corrected a few minor spelling errors or quotation
inconsistencies.