The New Project wizard's Use Libraries page has a Custom option which allows complete control over the libraries and modules a project will use. This section explains how to choose libraries and modules using this option.
After selecting Custom and clicking Next, the wizard shows a page with three list panes. We can make selections from each list pane.
At first, the only list enabled is the Choose Library Groups list. Because there are many libraries available in Functional Developer, the wizard puts libraries into groups according to their functionality. We can select a group to see the list of libraries it contains, and then choose a library from the list. When we select a group, the wizard displays the library list in the second pane.
Libraries are grouped by functionality in a fairly broad fashion, so some libraries appear in more than one group because they fit more than one description. For instance, the C-FFI library appears in both the "Interoperability" group and the "Win32" group.
Notice the check next to "Core", indicating that "Core" is the only group from which a library or libraries will be used by default. Note that when using Custom library selection to create a project with any GUI or OLE features, you must explicitly specify the GUI and OLE libraries you wish to use.
If we select "Core", we can see which libraries from that group would be used in a default project.
Figure 4.6 Functional-Dylan is the default library for use in new projects.
So, by default, a project would use the library Functional-Dylan. (Note that Figure 4.6 is a taken from the Functional Developer Personal Edition. Other Editions have more library groups.)
If we now select Functional-Dylan in the Library list, we can see which modules from the Functional-Dylan library a default project would include.

Figure 4.7 Default modules from Functional-Dylan for use in new projects.
Although the list shows that the Dylan and Functional-Extensions modules are not used, they are actually used indirectly, since the Functional-Dylan module is simply a repackaging of those two modules.
Remember that, in Dylan, the library is the unit of compilation, and modules are simply interfaces to functionality within a library. By deciding not to use a particular exported module, you will import fewer interfaces into your application, but the delivered application will not be any smaller on disk, or in memory when it is running.