Standard ML provides modules [called `structures'] with interfaces [called `signatures']. Structures are not first-class values so they cannot be passed as arguments to functions or stored in data structures.