Celestial mechanics in Haskell