--* From postmaster%watson.vnet.ibm.com@yktvmv.watson.ibm.com  Wed Dec 22 17:05:37 1993
--* Received: from yktvmv.watson.ibm.com by leonardo.watson.ibm.com (AIX 3.2/UCB 5.64/4.03)
--*           id AA14563; Wed, 22 Dec 1993 17:05:37 -0500
--* X-External-Networks: yes
--* Received: from watson.vnet.ibm.com by yktvmv.watson.ibm.com (IBM VM SMTP V2R3)
--*    with BSMTP id 5301; Wed, 22 Dec 93 17:11:56 EST
--* Received: from YKTVMV by watson.vnet.ibm.com with "VAGENT.V1.0"
--*           id <A.SANTAS.NOTE.YKTVMV.3327.Dec.22.17:11:55.-0500>
--*           for asbugs@watson; Wed, 22 Dec 93 17:11:56 -0500
--* Received: from bernina.ethz.ch by watson.ibm.com (IBM VM SMTP V2R3) with TCP;
--*    Wed, 22 Dec 93 17:11:54 EST
--* Received: from neptune by bernina.ethz.ch with SMTP inbound id <13648-0@bernina.ethz.ch>; Wed, 22 Dec 1993 23:11:47 +0100
--* From: Philip Santas <santas@inf.ethz.ch>
--* Received: from rutishauser.inf.ethz.ch (rutishauser-gw.inf.ethz.ch) by neptune id AA06257; Wed, 22 Dec 93 23:11:42 +0100
--* Date: Wed, 22 Dec 93 23:11:41 +0100
--* Message-Id: <9312222211.AA28230@rutishauser.inf.ethz.ch>
--* Received: from vinci.inf.ethz.ch.rutishauser by rutishauser.inf.ethz.ch id AA28230; Wed, 22 Dec 93 23:11:41 +0100
--* To: asbugs@watson.ibm.com
--* Subject: duplicate use of parameter names in dependent products
--* Cc: bronstei, santas, jenks@watson.ibm.com

--@ Fixed  by:  SSD   Tue Nov 8 10:43:24 EST 1994 
--@ Tested by:  none 
--@ Summary:    See the detailed description below. 


Version: A# version 33.0 for SPARC (debug version)
Severity: major
Problems:
    (a) duplicate use of parameter name in function definition
        is accepted.
    (b) standard function definition here is not equivalent to its
        lambda correspondent in the presence of dependent products
         (ie.
            f x == C
          is not the same as
            f = x+->C
         )
    (c) No resolution of type names.

Comments:
    case (a) refers to the previous bug
    Code 1 prints:
         164634
    Code 2 prints:
         asd

    Can you please send me feedback on this bug? Thanks.

Code1 :
  #include "aslib.as"
  SI ==> SingleInteger
  import SI
  import String
  f(T:BasicType, x:T): (Y:BasicType, y:Y)->T ==
         (T:BasicType, x:T):T +-> x

Code2 :
  #include "aslib.as"
  SI ==> SingleInteger
  import SI
  import String
  f(T:BasicType, x:T)(T:BasicType, x:T):T == x
  print(f(SI, 3)(String, "asd"))()

Philip

 
--+ Type inference was failing to check the type of the lambda in Code1.
--+ This bug has been fixed after v0.37.0 and the fix will appear in a
--+ subsequent version.  
--+ Code1 should report a type error in the definition of f.
--+ 
--+ Code2 compiles and runs correctly, and is not a bug.
--+ Parameters in inner scopes shadow parameters of the same name from
--+ outer scopes.
