=str #16479 Make constructor of FreeDirective internal

it can even be made `private()` as it's never instantiated - it's used only to mark states / get more typesafety when using the `Interpreter` (wherever it's used in interpreter `null` is returned)

(kind of like phantom types, but one level of abstraction less ;-))