Spiking neural P systems and their semantics in Haskell