Added a test program (for some reason..) and deriving Typeable on Program.