From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site ucbvax.ARPA Path: utzoo!watmath!clyde!burl!ulysses!ucbvax!usc-eclb.arpa!GBOOCH From: GBOOCH@USC-ECLB.ARPA Newsgroups: net.lang.ada Subject: Re: design problem/? Message-ID: <12142975372.32.GBOOCH@USC-ECLB.ARPA> Date: Fri, 13-Sep-85 14:35:56 EDT Article-I.D.: USC-ECLB.12142975372.32.GBOOCH Posted: Fri Sep 13 14:35:56 1985 Date-Received: Sat, 14-Sep-85 08:16:02 EDT References: Sender: daemon@ucbvax.ARPA Organization: The ARPA Internet List-Id: For a heavilylayered system in which abstractions are built on top of abstractions (and each layer hids its implementation), I tend to use either access types (occasionally) or derived types (most often). thus, in your example of the package file_stuff, I would probably write the full type declaration for a_file as: type a_file is new text_io.file_type; This actually is a common issue (i.e. how tdo I get the implementation of a private type to map excatly to another type). It would be nice (sometimes) to have a fully type declaration in the private part as a subtype, rather than a type, but Ada prevents this (and for good reason, I believe...the alternative produces some strnage problems). egb -------