В powershell у модулей своя scope.
BNF для него нигде нет (надо полагать, от неё офигели бы и скриптеры, и их адвокаты в менеджменте) .
Но мой реверс-инжиниринг совпал с доступными презентациями и примерами:
вместо стейтментов и даже выражений, его код состоит из многострочных кложур, где каждая строка - пайплайн, аналог джава стрима
(точнее наоборот, и даже Linq развитие идеи powershell)
Так вот, есть чувство что иерархически вложенные модули у него на том же уровне, где кложуры и пайплайны-стримы