Bill Page <bill.p...@newsynthesis.org> 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
| OpenAxiom bug report.
| 
| )abbrev category MONADC MonadCat
| MonadCat(A : Type, M: Type -> Type): Category == with
| if A has SetCategory then SetCategory
| fmap: (A->A, %) -> %
| unit: A -> %
| join: M % -> %
| mult: (%, %) -> %

This also compiles just fine.

| --
| 
| Just replace % by 'M T'. And the error message is the same.
| 
| Oddly, this variant:
| 
|   MonadCat(A : SetCategory, M: SetCategory -> SetCategory): Category == with
|         join: M M A -> M A
| 
| gives a different result:
| 
|    >> System error:
|    Control stack exhausted (no more space for function call frames).
| This is probably due to heavily nested or infinitely recursive function
| calls, or a tail call that SBCL cannot or has not optimized away.
| 
| PROCEED WITH CAUTION.

That compiles fine with OpenAxiom.



------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to