--* From SMWATT%WATSON.vnet.ibm.com@yktvmh.watson.ibm.com  Tue Oct 12 23:08:22 1993
--* Received: from yktvmh.watson.ibm.com by radical.watson.ibm.com (AIX 3.2/UCB 5.64/900524)
--*           id AA14932; Tue, 12 Oct 1993 23:08:22 -0400
--* Received: from watson.vnet.ibm.com by yktvmh.watson.ibm.com (IBM VM SMTP V2R3)
--*    with BSMTP id 9404; Tue, 12 Oct 93 23:14:49 EDT
--* Received: from YKTVMH by watson.vnet.ibm.com with "VAGENT.V1.0"
--*           id <A.SMWATT.NOTE.VAGENT2.9780.Oct.12.23:14:49.-0400>
--*           for asbugs@watson; Tue, 12 Oct 93 23:14:49 -0400
--* Received: from YKTVMH by watson.vnet.ibm.com with "VAGENT.V1.0"
--*           id 9778; Tue, 12 Oct 1993 23:14:49 EDT
--* Received: from cyst.watson.ibm.com by yktvmh.watson.ibm.com (IBM VM SMTP V2R3)
--*    with TCP; Tue, 12 Oct 93 23:14:48 EDT
--* Received: from spadserv.watson.ibm.com by cyst.watson.ibm.com (AIX 3.2/UCB 5.64/900528)
--*   id AA80895; Tue, 12 Oct 1993 23:14:14 -0400
--* Received: by spadserv.watson.ibm.com (AIX 3.2/UCB 5.64/900524)
--*           id AA11797; Tue, 12 Oct 1993 23:16:04 -0400
--* Date: Tue, 12 Oct 1993 23:16:04 -0400
--* From: smwatt@spadserv.watson.ibm.com (Stephen Watt)
--* X-External-Networks: yes
--* Message-Id: <9310130316.AA11797@spadserv.watson.ibm.com>
--* To: asbugs@watson.ibm.com
--* Subject: Bad terror message: definition has 1 meaning -- but the context requires exactly what is provided [soithas.as][v31.3]

--@ Fixed  by:  PI   Mon Apr 25 18:38:07 EDT 1994 
--@ Tested by:  none 
--@ Summary:    no more a bug. Now I get the current error msg (probably the bug disappeared after my last update) 
-- PI: the error msg now is correct (probably the bug has been fixed with my
-- last server update.

--+ "soithas.as", line 9:     == add
--+                       .......^
--+ [L9 C8] (Error) No suitable interpretation for the expression `add ...'
--+ 	The following exports were not provided:
--+ 	Missing tan: DoubleFloat -> DoubleFloat
--+
--+ "soithas.as", line 29:         sin(x: F): F == sin(x)$FNF
--+                        ........^
--+ [L29 C9] (Error) Definition has 1 meanings.
--+ 	Meaning 1: DoubleFloat -> DoubleFloat
--+   The context requires an expression of type (x: DoubleFloat) -> DoubleFloat.
--+
--+ "soithas.as", line 30:         cos: F -> F  == cos$FNF
--+                        ........^
--+ [L30 C9] (Error) Definition has 1 meanings.
--+ 	Meaning 1: DoubleFloat -> DoubleFloat
--+   The context requires an expression of type DoubleFloat -> DoubleFloat.
--+
--+ "soithas.as", line 31:         tan(x: F): F == sin x/cos x
--+                        ........^...............^.....^
--+ [L31 C9] (Error) Definition has 1 meanings.
--+ 	Meaning 1: DoubleFloat -> DoubleFloat
--+   The context requires an expression of type (x: DoubleFloat) -> DoubleFloat.
--+ [L31 C25] (Error) There are no suitable meanings for the operator `sin'.
--+ [L31 C31] (Error) There are no suitable meanings for the operator `cos'.
--+
#include "aslib.as"

F  ==> DoubleFloat

ForeignNumericFunctions: with
	sin:	F -> F
	cos:	F -> F
	tan:	F -> F
    == add
	import from Machine

	BDF ==> DFlo

	import with {|
		sin: BDF -> BDF
		cos: BDF -> BDF
	|} from Foreign

	sin(x: F): F == sin(x::BDF):: F
	cos(x: F): F == cos(x::BDF):: F

AFunkyDomain: with
	sin:	F -> F
	cos:	F -> F
	tan:	F -> F

    == add
	FNF ==> ForeignNumericFunctions

	sin(x: F): F == sin(x)$FNF
	cos: F -> F  == cos$FNF
	tan(x: F): F == sin x/cos x
 
