A named software object instantiated once in the scope of its definition. A top-level Scala
object can implement the singleton pattern. Nested object definitions can have different instances for different enclosing instances, so the relevant scope matters. New to topics? Read the docs here!