--* From postmaster%watson.vnet.ibm.com@yktvmv.watson.ibm.com  Thu Jul 28 11:08:30 1994
--* Received: from yktvmv-ob.watson.ibm.com by asharp.watson.ibm.com (AIX 3.2/UCB 5.64/930311)
--*           id AA20095; Thu, 28 Jul 1994 11:08:30 -0400
--* Received: from watson.vnet.ibm.com by yktvmv.watson.ibm.com (IBM VM SMTP V2R3)
--*    with BSMTP id 5059; Thu, 28 Jul 94 11:08:33 EDT
--* Received: from YKTVMV by watson.vnet.ibm.com with "VAGENT.V1.0"
--*           id <A.ROOT.NOTE.VAGENT2.8389.Jul.28.11:08:33.-0400>
--*           for asbugs@watson; Thu, 28 Jul 94 11:08:33 -0400
--* Received: from YKTVMV by watson.vnet.ibm.com with "VAGENT.V1.0"
--*           id 8383; Thu, 28 Jul 1994 11:08:32 EDT
--* Received: from daly.watson.ibm.com by yktvmv.watson.ibm.com (IBM VM SMTP V2R3)
--*    with TCP; Thu, 28 Jul 94 11:08:31 EDT
--* Received: by daly.watson.ibm.com (AIX 3.2/UCB 5.64/4.03)
--*           id AA21442; Thu, 28 Jul 1994 11:06:49 -0500
--* Date: Thu, 28 Jul 1994 11:06:49 -0500
--* From: root@daly.watson.ibm.com
--* Message-Id: <9407281606.AA21442@daly.watson.ibm.com>
--* To: asbugs@watson.ibm.com
--* Subject: [1] DOS36.0 compiler crashes on this file [bug2.as][DOS 36.0]

--@ Fixed  by:  SSD   Thu Aug 4 14:08:55 EDT 1994 
--@ Tested by:  none 
--@ Summary:    Extended tfSat to support a way of computing the sublist for K(%) without checking (again) that % is an L. 

#if BugHeaders
LastSeenBy: PI
LastUpdate: 01/Aug/94
BugKeywords: tinfer
Priority:
Comments: See bug764.as
Comments:
SeenBy:
Updates:
#endif
#assert modified
#if modified

PI: Crash also on linux. The problem is in the lines with `%' (search for it)

Type: with == add;

Category: with == add;

Tuple(T: Type): with == add;

((A: Tuple Type) -> (R: Tuple Type)): with == add;

Join(T: Tuple Category): Category == with;

A: Category == with;

B: Category == with;

C(T: Type): Category == with;

D: Category == Join(A,C(B)) with;

E: Category == D with;

F: Category == E with;

J: Category == D with;

L: Category == Join(J,E) with;

K1(R:L):Category == J with;

K2(R:L):Category == J with;

M: Category == Join(L,F,K(%)) with;

N(R:M, S:M):Category == Join(K1(R),K2(S)) with;

O:Category == Join(M,N(%,%)) with;

#else  -- original begin

Type: with == add;

Category: with == add;

Tuple(T: Type): with == add;

((A: Tuple Type) -> (R: Tuple Type)): with == add;

Join(T: Tuple Category): Category == with;

A: Category == with;

B: Category == with;

C(T: Type): Category == with;

D: Category == Join(A,C(B)) with;

E: Category == D with;

F: Category == E with;

J: Category == D with;

L: Category == Join(J,E) with;

K1(R:L):Category == J with;

K2(R:L):Category == J with;

M: Category == Join(L,F,K(%)) with;

N(R:M, S:M):Category == Join(K1(R),K2(S)) with;

O:Category == Join(M,N(%,%)) with;

#endif -- original end

 
