fix(expressions): work around for the new operator and constructors overriding apply
refactor: use Pratt's parser in {let} blocks

Closes #280