--* From postmaster%watson.vnet.ibm.com@yktvmv.watson.ibm.com  Fri Oct 15 14:54:46 1993
--* Received: from yktvmv2.watson.ibm.com by radical.watson.ibm.com (AIX 3.2/UCB 5.64/900524)
--*           id AA14723; Fri, 15 Oct 1993 14:54:46 -0400
--* X-External-Networks: yes
--* Received: from watson.vnet.ibm.com by yktvmv.watson.ibm.com (IBM VM SMTP V2R3)
--*    with BSMTP id 3915; Fri, 15 Oct 93 15:01:26 EDT
--* Received: from YKTVMV by watson.vnet.ibm.com with "VAGENT.V1.0"
--*           id <A.GIANNI.NOTE.VAGENT2.2575.Oct.15.15:01:25.-0400>
--*           for asbugs@watson; Fri, 15 Oct 93 15:01:26 -0400
--* Received: from YKTVMV by watson.vnet.ibm.com with "VAGENT.V1.0"
--*           id 2565; Fri, 15 Oct 1993 15:01:25 EDT
--* Received: from matthew.watson.ibm.com by yktvmv.watson.ibm.com
--*    (IBM VM SMTP V2R3) with TCP; Fri, 15 Oct 93 15:01:20 EDT
--* Received: by matthew.watson.ibm.com (AIX 3.2/UCB 5.64/4.03)
--*           id AA19333; Fri, 15 Oct 1993 15:03:05 -0400
--* Date: Fri, 15 Oct 1993 15:03:05 -0400
--* From: gianni@matthew.watson.ibm.com
--* Message-Id: <9310151903.AA19333@matthew.watson.ibm.com>
--* To: asbugs@watson.ibm.com
--* Subject: extend fails on SingleInteger [extend.as][31.4 (current)]

--@ Fixed  by:  PI   Sun Mar 20 22:08:07 EST 1994 
--@ Tested by:  none 
--@ Summary:    no more a bug 


#include "aslib.as"

IntegralDomain : Category == Ring with
   unit? : % -> Boolean
   exquo : (%,%) -> Partial %


extend SingleInteger:Join(IntegralDomain,Logic,OrderedFinite,IntegerNumberSystem) ==
  SingleInteger add
     unit?(s:%):Boolean == s=1 or s=-1
     exquo(a:%, b:%):Partial(%) ==
         a rem b = 0 => [a quo b]
         failed
 
