Inheritance needles

Implements Base and Derived needles (but under the names child and parent... )

Depends on #295
I don't know how I feel about the `lambda x: x` example....  its type (to me) is `a -> a`. Because `a` isn't specified....this can __only__ be the identity function.

The real problem for me here is the lack of Algebraic Data Types and Type Alias. This addresses the same desire for structural documentation, but is easily representable with types.

Here, `func` is really a van Laarhoven lens.... but I figured the param description on the next line gave enough of the semantics so that type could just be the shape of the function.