I regularly see the phrase "all Xs are Ys, but not all Ys are Xs" in teaching material. Even material for children!
I have to re-read it every time. I very much prefer "Y is a more general category than X" or "X is a subset of Y".
Do people find this phrasing helpful, or is it poor pedagogy?
Difftastic update: I've rewritten the tree diffing logic to use Dijkstra's algorithm similar to Autochrome.
It works amazingly well! Note how it recognises both parent and children unchanged nodes in the lisp example. You can even see me refactoring Rust to use if-let.
LambdaMOO has prototypical inheritance, so you create objects from other objects.
@create $note named "Old Post-It"
You now have Old Post-It with object number #51116 and parent generic note (#9).
An object that can have children is called 'fertile'!