<<>> <> <> <> <> <> <> <> <> DIRECTORY ColorTypes USING [HSL], Rope USING [ROPE]; NamedColors: CEDAR DEFINITIONS ~ BEGIN UndefinedName: SIGNAL; BadGrammar: SIGNAL; ColorType: TYPE = { black, white, gray, grey, red, orange, brown, yellow, green, cyan, blue, purple, magenta, achromatic, weak, moderate, strong, vivid, bright, dark, medium, light }; <> <> <<>> <> <> <> <> <> <> <> <> << Dark Dark Purple, Lightish Very Dark Blue, Strong Light Brown, Vivid Red>> HSL: TYPE ~ ColorTypes.HSL; RopeToHSL: PUBLIC PROCEDURE [rope: Rope.ROPE] RETURNS [HSL]; <<... parses the rope and returns a corresponding color>> <<>> HSLToRope: PUBLIC PROCEDURE [clr: HSL, level: NAT ¬ 2] RETURNS [rope: Rope.ROPE]; <<... returns a limited set of names corresponding to a discretized color space>> END.