That's not really how I - and I think most engineers - understand the term "expressiveness". In Haskell I can express "a side-effect free function that consumes a String and produces an Int", for example; it's impossible to express this in x86 assembly language. You can certainly write a block of code that has the same operational qualities, but the code itself doesn't in any way express any of that denotational information - it's all just implied or inferred, not something encoded in the language itself; you can't even express the idea of a "function", in fact!