After two days of polishing the stuff I am pleased to announce availability of the module Momenta: www.numeric-quest.com/haskell/Momenta.html Those who already downloaded the unofficial version are adviced to get the new one. It is cleaner and much faster. I also upgraded QuantumVector as well, where I added few important bits for new Momenta to work correctly. I am quite pleased with myself :-). This stuff works like a charm so far. The explanation follows. Jan =================================================== While computation of the total angular momentum for a system of classical particles is a rather trivial task, this is not so for quantum systems. To describe quantum system of several interacting subsystems one must properly define a vector space spanned by eigenvectors of observables defined for the entire system as a whole. Its basis, or rather a set of several mutually orthogonal bases, can be obtained by linear transformation of a tensor product of the bases defined for the uncoupled subsystems. The problem is how to find the coefficients of such transformation. There exists a recursive method due to Clebsch and Gordan, which does just that for two quantum subsystems describing angular momenta. It can be generalized onto three or more subsystems. For example, four subsystems (a, b, c, d) can be first partitioned into (((a, b), c), d) and then the Clebsch-Gordan method can be applied three times in the inside-out fashion. Although conceptually simple, this method is too daunting for by-hand computations. However it can be easily handled by computer programs, such as this Haskell module. There are two reasons for writing this module. First of all, the problem of composing angular momenta is pervasive in Quantum Mechanics; without much of an exaggeration we say that a significant portion of any typical textbook on Quantum Mechanics is in one way or another related to a composition of angular momenta. From this perspective, this module can be considered a basic library module for quantum mechanical applications. But this module can be also considered a test case for the QuantumVector module, which is currently under development. Its abstract computing machinery needs to be tested on some concrete non-trivial problems, such as this one. This module produces ready to go eigenvectors of combined states and verify their correctness. Due to all the background work we have done so far on the abstract Dirac formalism and to the elegancy of Haskell itself, the algorithm is simple and, most probably, much clearer than in other implementations.