I see that *up has become an increasingly common name for toolchain installers: rustup, ghcup, even juliaup.
I think Rust was the first to use this terminology? I'm curious how similar the different *up tools are.
I'm a huge fan of Swift's 'Error Handling Rationale' design document:
https://github.com/swiftlang/swift/blob/9315673c003875158852579bd1f33480cdec5461/docs/ErrorHandlingRationale.md#fundamentals
It carefully defines terminology and compares with other languages, so you can understand Swift's position and preference in the design space.
TIL that Prolog has a notion of a functor!
https://www.cse.unsw.edu.au/~billw/dictionaries/prolog/functor.html
In true PL style it has a different meaning from the Haskell, OCaml and C++ terminology.