button :: Picture -> a -> Component (Button a, DisplayHandle) disableButton :: Button a -> IO () enableButton :: Button a -> IO () nameButton :: String -> Button a -> Button a getButtonClick :: Button a -> IO a setButtonLabel :: Button a -> Picture -> IO () combineButtons :: [Button a] -> IO (Button a) mapButton :: (a->b) -> Button a -> Button b