Object-Oriented Programming
Touying provides some convenient utility functions for object-oriented programming.
#let empty-object = (methods: (:))
An empty class.
#let call-or-display(self, it) = {
  if type(it) == function {
    return it(self)
  } else {
    return it
  }
}
Call or display as-is.
#let methods(self) = { .. }
Used to bind self to methods and return, very commonly used.