In a proper object-oriented language, everything is an object, including these. That allows you to do some really interesting things which are at the heart of the OO mindset. e.g. Smalltalk avoids having to use conditionals almost completely via dynamic dispatch:
b ifTrue: [ 'b is true!' print ]
b is a Boolean; ifTrue:block is an abstract method called on Boolean. But the values true and false are actually instances of subclasses of Boolean; True's implementation of ifTrue evaluates the block, and False's doesn't, and that's how you get different behaviour depending on whether b is true or false. The core language neither knows nor cares that booleans are special.(Actually, the bytecode does care, and has special accelerated opcodes to make operations of booleans fast for performance reasons, but that's just an implementation detail.)
Any idea what sort of applications the Mercury language is used commercially for? (Only) one I know of is Prince XML (from the Wikipedia article about either one of them). Not saying it's not used for more, just interested to know.
http://www.missioncriticalit.com/technology.html
You could also use it anywhere Prolog is used. So, you could look up applications or commercial users of Prolog. Here's one in finance that would probably benefit from Mercury:
https://dtai.cs.kuleuven.be/CHR/files/Elston_SecuritEase.pdf
* Procedural: c / pascal / basic / fortran
* OO: c++ / java / c#
* Dynamic: python / ruby / javascript
* Funcional: lisp / scheme / clojure / haskell
* Logic: prolog
* Query: SQL
* Assembly
Learning something of each category should prepare you for almost everything!