refactor: use Pratt's parser in {let} blocks