Basic Storm is an extensible language, and it is possible to develop language extensions for it. Extensions can generally be encapsulated in a separate package, that the user of the extension can selectively include with use statements.

The mechanisms in Basic Storm allow a number of different type of extensions, of varying complexity:

This section will introduce some of the central concepts for creating extensions at a high level. As this documentation aims to provide a high-level picture of the processes, the curious developer is encouraged to explore the source code documentation of the classes in lang:bs, particularly classes that inherit from lang:bs:Expr. There are also tutorials for getting started with developing language extensions.