module EndButtonsF where import AllFudgets endButtonsF :: F (Either Click Click) (Either Click Click) endButtonsF = Bool -> Bool -> F (Either Click Click) (Either Click Click) -> F (Either Click Click) (Either Click Click) forall a b. Bool -> Bool -> F a b -> F a b noStretchF Bool False Bool True (F (Either Click Click) (Either Click Click) -> F (Either Click Click) (Either Click Click)) -> F (Either Click Click) (Either Click Click) -> F (Either Click Click) (Either Click Click) forall a b. (a -> b) -> a -> b $ Int -> F (Either Click Click) (Either Click Click) -> F (Either Click Click) (Either Click Click) forall a b. Int -> F a b -> F a b matrixF Int 2 (F Click Click ok F Click Click -> F Click Click -> F (Either Click Click) (Either Click Click) forall a b c d. F a b -> F c d -> F (Either a c) (Either b d) >+< F Click Click cancel) where ok :: F Click Click ok = [Char] -> F Click Click forall lbl. Graphic lbl => lbl -> F Click Click buttonF [Char] "OK" cancel :: F Click Click cancel = Customiser (ButtonF [Char]) -> [Char] -> F Click Click forall lbl. Graphic lbl => Customiser (ButtonF lbl) -> lbl -> F Click Click buttonF' Customiser (ButtonF [Char]) pm [Char] "Cancel" where pm :: Customiser (ButtonF [Char]) pm = [(ModState, [Char])] -> Customiser (ButtonF [Char]) forall xxx. HasKeys xxx => [(ModState, [Char])] -> Customiser xxx setKeys [([],[Char] "Escape")] endButtonsF' :: F [Char] (Either Click Click) endButtonsF' = Bool -> Bool -> F [Char] (Either Click Click) -> F [Char] (Either Click Click) forall a b. Bool -> Bool -> F a b -> F a b noStretchF Bool False Bool True (F [Char] (Either Click Click) -> F [Char] (Either Click Click)) -> F [Char] (Either Click Click) -> F [Char] (Either Click Click) forall a b. (a -> b) -> a -> b $ Int -> F (Either [Char] Click) (Either Click Click) -> F (Either [Char] Click) (Either Click Click) forall a b. Int -> F a b -> F a b matrixF Int 2 (F [Char] Click ok F [Char] Click -> F Click Click -> F (Either [Char] Click) (Either Click Click) forall a b c d. F a b -> F c d -> F (Either a c) (Either b d) >+< F Click Click cancel) F (Either [Char] Click) (Either Click Click) -> ([Char] -> Either [Char] Click) -> F [Char] (Either Click Click) forall c d e. F c d -> (e -> c) -> F e d >=^< [Char] -> Either [Char] Click forall a b. a -> Either a b Left where ok :: F [Char] Click ok = Customiser (ButtonF [Char]) -> [Char] -> PF (ButtonF [Char]) Click Click forall lbl. Graphic lbl => Customiser (ButtonF lbl) -> lbl -> PF (ButtonF lbl) Click Click buttonF'' Customiser (ButtonF [Char]) forall a. Customiser a standard [Char] "OK" PF (ButtonF [Char]) Click Click -> ([Char] -> Either (Customiser (ButtonF [Char])) Click) -> F [Char] Click forall c d e. F c d -> (e -> c) -> F e d >=^< Customiser (ButtonF [Char]) -> Either (Customiser (ButtonF [Char])) Click forall a b. a -> Either a b Left (Customiser (ButtonF [Char]) -> Either (Customiser (ButtonF [Char])) Click) -> ([Char] -> Customiser (ButtonF [Char])) -> [Char] -> Either (Customiser (ButtonF [Char])) Click forall b c a. (b -> c) -> (a -> b) -> a -> c . [Char] -> Customiser (ButtonF [Char]) forall lbl. lbl -> Customiser (ButtonF lbl) setLabel F [Char] Click -> SP [Char] [Char] -> F [Char] Click forall c d e. F c d -> SP e c -> F e d >=^^< SP [Char] [Char] forall a. Eq a => SP a a idempotSP cancel :: F Click Click cancel = Customiser (ButtonF [Char]) -> [Char] -> F Click Click forall lbl. Graphic lbl => Customiser (ButtonF lbl) -> lbl -> F Click Click buttonF' Customiser (ButtonF [Char]) pm [Char] "Cancel" where pm :: Customiser (ButtonF [Char]) pm = [(ModState, [Char])] -> Customiser (ButtonF [Char]) forall xxx. HasKeys xxx => [(ModState, [Char])] -> Customiser xxx setKeys [([],[Char] "Escape")]