Webel IT Australia promotes the amazing Mathematica tool and the powerful Wolfram Language and offers professional Mathematica services for computational computing and data analysis. Our Mathematica
tips, issue tracking, and wishlist is offered here most constructively to help improve the tool and language and support the Mathematica user community.
DISCLAIMER: Wolfram Research does not officially endorse analysis by Webel IT Australia.
An ADT-Method function in the Webel recipe for strong types has no state and always returns the same expression given the same input, for any ADTs of the same ADT signature.
There is a slight "side door" concerning some necessary use of at least some "globals" for special development and testing reasons, but that can be ignored as pedantic for the purposes of the definition here.
There is another slight "side door". Where performance is an issue, the Mathematica Once[] caching mechanism may optionally be used:
If you want to try OO with support for state in Mathematica consider trying the (not fully fledged but very useful) user-contributed MTools package for (some) OO in Mathematica.