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