Bill Page <[email protected]> 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. -- You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/fricas-devel?hl=en.
