Building interpreters by transforming stratified monads. Unpublished manuscriptLanguage Extensibility via First-class Interpreters and Constructive ModulesSemantic Lego