14.4.1 The angle-library file

The angle-library file: angle-library.dylan.

Module: dylan-user

// Library definition
define library angle
// Interface module
export angle, position;
// Substrate libraries
use sixty-unit;
use say;
use dylan;
end library angle;

// Interface module
define module angle
// Classes
create <angle>, <relative-angle>, <directed-angle>, <latitude>, <longitude>;
// Generics
create direction, direction-setter;
// Shared protocol
use say, export: all;
use sixty-unit, import: { encode-total-seconds }, export: all;
end module angle;

// Interface module
define module position
// Classes
create <position>, <absolute-position>, <relative-position>;
// Generics
create distance, angle, latitude, longitude;
// Shared protocol
use say, export: all;
end module position;

// Implementation module
define module angle-implementation
// External interface
use angle;
// Substrate modules
use sixty-unit;
use say-implementor;
use dylan;
end module angle-implementation;

// Implementation module
define module position-implementation
// External interface
use position;
// Substrate modules
use angle;
use say-implementor;
use dylan;
end module position-implementation;