模块系统来允许用户将其代码分解到叫做模块的更小的部份之中。模块可以隐藏实现细节比如帮助函数，并组织有关的代码在一起。模块为可导入代码充当名字空间，比如codice_20。第三方库（或包）构成自一个或多个模块，并可从Elm公共库中获得到。所有的库都采用语义版本号，这是编译器和其他工具所强制的。就是说，移除一个函数或改变它的类型只能在主要发行中进行。
同HTML、CSS和JavaScript的互操作.Elm使用叫做端口的抽象来与JavaScript通信。它允许值流入和流出Elm程序，确