A component based game library for Haskell