Implementing A level physics as Haskell modules