Bill Page writes:
| On Mon, Dec 5, 2011 at 6:23 PM, Gabriel Dos Reis wrote:
| > Bill Page writes:
| > ...
| > | Oddly, this variant:
| > |
| > | MonadCat(A : SetCategory, M: SetCategory -> SetCategory): Category ==
with
| > | join: M M A -> M A
| > |
| > | gives a different result:
|
On Mon, Dec 5, 2011 at 6:23 PM, Gabriel Dos Reis wrote:
> Bill Page writes:
> ...
> | Oddly, this variant:
> |
> | MonadCat(A : SetCategory, M: SetCategory -> SetCategory): Category == with
> | join: M M A -> M A
> |
> | gives a different result:
> |
> | >> System error:
> | Contro
Bill Page writes:
[...]
| We really want
|
|)abbrev category MONADC MonadCat
|MonadCat(T:Type, M:Type->Type):Category == with
| join: M M T -> M T
As far as I can tell, that compiles fine in OpenAxiom.
| This is equivalent in this context to what actual appears in my
| OpenAxi
Martin,
On Mon, Dec 5, 2011 at 4:47 AM, you wrote:
>> > Another idea that occurred to me would be to have an equivalent to the
>> > Haskell typeclass. Like a higher order (non-concrete) category, say a
>> > category where all the function parameters and returns are only
>> > specified in terms of