On Sun, 12 Aug 2007, Bill Page wrote:
| On 8/12/07, Gabriel Dos Reis wrote:
| > On Sun, 12 Aug 2007, Bill Page wrote:
| > | ...
| > | It should be fine because of rule 2:
| > |
| > | 2. Anonymous types are equivalent when structurally
equivalent
| >
| > The parameter S in RepeatedSquare(S) of the category
| >
| > SetCategory with "*": (%,%) -> %
| >
| > but RepeatedSquare is being called with a domain of a
named category (Monad).
| > Rule 2 says:
| >
| > 2. Anonymous types are equivalent when stucturally
equivalent
| >
| > How would it apply?
| >
|
| Why do you think:
|
| import RepeatedSquaring(%)
|
| is referring to a named category?
I'm not saying that.
I'm saying that the parameter S of the default package
Monad& -- generated for
the default implementation of the category Monad -- is of
the named category
Monad. It is that parameter S which is being used to
instantiate
RepeatedSquaring. However, RepeatedSquaring expects its
(domain) argument to
be of the unnamed category
SetCategory with "*": (%,%) -> %
-- Gaby