We describe extensions of the Hindley-Milner type system to support higher-order polymorphism and first-class structures with polymorphic components. The combination of these features results in a `core language' that rivals the expressiveness of the Standard ML module system in some respects and exceeds it in others.