For several use cases it is important to be able to evaluate snippets of code such that they set variables in a local (temporary) inner scope as opposed to setting them in top scope.
I blogged about PAL (https://puppet-on-the-edge.blogspot.com/2018/10/puppet-pal-wants-to-be-your-friend.html) , and will add the in_local_scope thing to it when the PR is merged. There is no hurry to document PAL since I think there are quite a number of things to add to it to make it feature complete - for now it serves its purpose (mainly) for Bolt and as an API we use internally.