 SML modules provide not only namespace control but also abstraction, in the sense that they allow programmers to define abstract data types.Three main syntactic constructs comprise the SML module system