Gabriel Dos Reis <[EMAIL PROTECTED]> writes: > | What are "algebraic types"? > > Ralf and you have been doing it in your project, I think. Basically, > an algebraic type is any data type on can construct with sum and > products. Examples, > > BinaryTree t = Nil | Node t (BinaryTree t) (BinaryTree t) > > > Data of algebraic type are constructed with the constructors, and they > are deconstructed through pattern matching.
Well, in fact I need more than that, namely mutually dependent recursively defined types. I.e., I want to be able to say A: SomeCat; B: SomeCat; A == f(A,B) add; B == g(A,B) add; as currently possible in Aldor, or, even l := [SomeDomain, SomeDomain]; l.1 := f(l) add; l.2 := g(l) add; (the latter is currently not allowed in Aldor, but it happens to work...) But I guess, you know that. Martin _______________________________________________ Axiom-developer mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/axiom-developer
