Groups, Algorithms, Programming... in Haskell