Add an overview of important classes, theorems, and notations
Here are a few things needed:
-
left_id_L
for∅ ∪ reg = reg
- the idea of classes plus notations for overloading
- fmap
- monadic bind
- empty
- the classes and instances for sets
- generic maps vs important special case of gmap
-
Decidable
andEqDecision
classes - induction principles for maps, reverse induction over lists
- notations to rename
firstn
andskipn
totake
anddrop
I can think of two audiences for such a guide, which may require different writing. The first audience is people who happen to be using std++ through Iris. This reader needs to know that something is being provided by std++ and not something else and sometimes needs a hint that something is going on at all (eg, notations are overloaded, a type class is involved). The second audience is people looking to adopt std++ and assessing whether it would be useful. This reader would want some motivation (hard things std++ gives) and examples of conventions that std++ follows.
The features these audiences want might be the same, but I would write them differently. As a first proposal I'd suggest the first audience, since it's the authentic need. As such, it might be more appropriate to put this overview in the iris/iris repo rather than here.