manages basic computer operations such as startup, controls access to system resources, and manages computer memory files
consists of programs for performing utility functions needed by many application programs, allocating computer resources to application programs, and managing computer resources.
h a function may be applied to any arguments whose types match a type expression involving type variables