immutable api to #54 napile-compiler