packages feed

fudgets 0.18.3.2 → 0.18.4

raw patch · 36 files changed

+250/−140 lines, 36 filesdep +bytestringdep ~basenew-component:exe:ClaPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: bytestring

Dependency ranges changed: base

API changes (from Hackage documentation)

- AllFudgets: DrawImageStringPS :: Point -> PackedString -> DrawCommand
- AllFudgets: DrawStringPS :: Point -> PackedString -> DrawCommand
- AllFudgets: measurePackedString :: FudgetIO f => PackedString -> GCtx -> (MeasuredGraphics -> f b ho) -> f b ho
- AllFudgets: pmDrawImageStringPS :: PixmapId -> GCId -> Point -> PackedString -> FRequest
- AllFudgets: pmDrawStringPS :: PixmapId -> GCId -> Point -> PackedString -> FRequest
- AllFudgets: size :: Point
- AllFudgets: version_0_18_3_2 :: [Char]
- AllFudgets: wDrawImageStringPS :: GCId -> Point -> PackedString -> FRequest
- AllFudgets: wDrawStringPS :: GCId -> Point -> PackedString -> FRequest
- Fudgets: DrawImageStringPS :: Point -> PackedString -> DrawCommand
- Fudgets: DrawStringPS :: Point -> PackedString -> DrawCommand
- Fudgets: version_0_18_3_2 :: [Char]
+ AllFudgets: BinSocketDe :: Socket -> Descriptor
+ AllFudgets: SocketReadBin :: ByteString -> AEvent
+ AllFudgets: defaultTriangleSize :: Point
+ AllFudgets: version_0_18_4 :: String
+ Fudgets: version_0_18_4 :: String
- AllFudgets: (>#==<) :: (F a1 f, Orientation) -> F e a1 -> F e f
+ AllFudgets: (>#==<) :: (F d f, Orientation) -> F e d -> F e f
- AllFudgets: CharStruct :: Int -> CharStruct
+ AllFudgets: CharStruct :: !Int -> CharStruct
- AllFudgets: FontStruct :: FontId -> FontDirection -> Char -> Bool -> Char -> [FontProp] -> CharStruct -> Maybe per_char -> Int -> FontStructF per_char
+ AllFudgets: FontStruct :: FontId -> FontDirection -> !Char -> !Bool -> !Char -> [FontProp] -> !CharStruct -> Maybe per_char -> !Int -> FontStructF per_char
- AllFudgets: WriteSocketPS :: Socket -> PackedString -> SocketRequest
+ AllFudgets: WriteSocketPS :: Socket -> String -> SocketRequest
- AllFudgets: allocColor :: FudgetIO f => ColormapId -> RGB -> Cont (f b ho) Color
+ AllFudgets: allocColor :: FudgetIO f => ColormapId -> RGB -> Cont (f hi ho) Color
- AllFudgets: allocColorPixel :: FudgetIO f => ColormapId -> RGB -> Cont (f b ho) Pixel
+ AllFudgets: allocColorPixel :: FudgetIO f => ColormapId -> RGB -> Cont (f hi ho) Pixel
- AllFudgets: allocNamedColor :: FudgetIO f => ColormapId -> ColorName -> Cont (f b ho) Color
+ AllFudgets: allocNamedColor :: FudgetIO f => ColormapId -> ColorName -> Cont (f hi ho) Color
- AllFudgets: allocNamedColorDef :: FudgetIO f => ColormapId -> ColorName -> [Char] -> Cont (f b ho) Color
+ AllFudgets: allocNamedColorDef :: FudgetIO f => ColormapId -> ColorName -> [Char] -> Cont (f hi ho) Color
- AllFudgets: allocNamedColorDefPixel :: FudgetIO f => ColormapId -> ColorName -> [Char] -> (Pixel -> f b ho) -> f b ho
+ AllFudgets: allocNamedColorDefPixel :: FudgetIO f => ColormapId -> ColorName -> [Char] -> (Pixel -> f hi ho) -> f hi ho
- AllFudgets: allocNamedColorPixel :: FudgetIO f => ColormapId -> ColorName -> Cont (f b ho) Pixel
+ AllFudgets: allocNamedColorPixel :: FudgetIO f => ColormapId -> ColorName -> Cont (f hi ho) Pixel
- AllFudgets: annotChildren :: Drawing b d -> [(DPath, Drawing b d)]
+ AllFudgets: annotChildren :: Drawing a d -> [(DPath, Drawing a d)]
- AllFudgets: appendChanK :: FudgetIO f => String -> String -> f b ho -> f b ho
+ AllFudgets: appendChanK :: FudgetIO f => String -> String -> f hi ho -> f hi ho
- AllFudgets: appendStderrK :: FudgetIO f => String -> f b ho -> f b ho
+ AllFudgets: appendStderrK :: FudgetIO f => String -> f hi ho -> f hi ho
- AllFudgets: appendStdoutK :: FudgetIO f => String -> f b ho -> f b ho
+ AllFudgets: appendStdoutK :: FudgetIO f => String -> f hi ho -> f hi ho
- AllFudgets: asyncTransceiverF :: Socket -> F [Char] String
+ AllFudgets: asyncTransceiverF :: Socket -> F String String
- AllFudgets: asyncTransmitterF :: Socket -> F [Char] b
+ AllFudgets: asyncTransmitterF :: Socket -> F String b
- AllFudgets: asyncTransmitterF' :: Socket -> F [Char] ()
+ AllFudgets: asyncTransmitterF' :: Socket -> F String ()
- AllFudgets: atomName :: FudgetIO f => Atom -> (Maybe String -> f b ho) -> f b ho
+ AllFudgets: atomName :: FudgetIO f => Atom -> (Maybe String -> f hi ho) -> f hi ho
- AllFudgets: bitmapFromData :: FudgetIO f => BitmapData -> (BitmapReturn -> f b ho) -> f b ho
+ AllFudgets: bitmapFromData :: FudgetIO f => BitmapData -> (BitmapReturn -> f hi ho) -> f hi ho
- AllFudgets: bmk :: ((a1 -> c1) -> c2) -> (a1 -> a2 -> c1) -> a2 -> c2
+ AllFudgets: bmk :: ((a -> c) -> c) -> (a -> a -> c) -> a -> c
- AllFudgets: buttonMenuF :: Graphic lbl => LayoutDir -> FontName -> lbl -> [(a, [(ModState, KeySym)])] -> F (Either MenuState b) a -> F (Either MenuState (Either lbl b)) (Either MenuState a)
+ AllFudgets: buttonMenuF :: Graphic b => LayoutDir -> FontName -> b -> [(a, [(ModState, KeySym)])] -> F (Either MenuState b) a -> F (Either MenuState (Either b b)) (Either MenuState a)
- AllFudgets: buttonMenuF' :: Graphic lbl => Bool -> LayoutDir -> FontName -> lbl -> [(a, [(ModState, KeySym)])] -> F (Either MenuState b) a -> F (Either MenuState (Either lbl b)) (Either MenuState a)
+ AllFudgets: buttonMenuF' :: Graphic b => Bool -> LayoutDir -> FontName -> b -> [(a, [(ModState, KeySym)])] -> F (Either MenuState b) a -> F (Either MenuState (Either b b)) (Either MenuState a)
- AllFudgets: changeBackPixmap :: (ColorGen a1, ColorGen a2, Show a1, Show a2) => a1 -> a2 -> Point -> [DrawCommand] -> K i o -> K i o
+ AllFudgets: changeBackPixmap :: (ColorGen a, ColorGen a, Show a, Show a) => a -> a -> Size -> [DrawCommand] -> K i o -> K i o
- AllFudgets: cmdContLow :: FudgetIO f => FRequest -> (FResponse -> Maybe ans) -> (ans -> f b ho) -> f b ho
+ AllFudgets: cmdContLow :: FudgetIO f => FRequest -> (FResponse -> Maybe ans) -> (ans -> f hi ho) -> f hi ho
- AllFudgets: compEitherSP :: SP a1 a2 -> SP a3 b -> SP (Either a1 a3) (Either a2 b)
+ AllFudgets: compEitherSP :: SP a a -> SP a b -> SP (Either a a) (Either a b)
- AllFudgets: compMsgSP :: SP a1 a2 -> SP a3 b -> SP (Message a1 a3) (Message a2 b)
+ AllFudgets: compMsgSP :: SP a a -> SP a b -> SP (Message a a) (Message a b)
- AllFudgets: compPath :: (Path, b1) -> p -> (Either (Message (Path, b1) b2) (Message (Path, b1) b3) -> p) -> p
+ AllFudgets: compPath :: ([Direction], b) -> b -> (Either (Message ([Direction], b) b) (Message ([Direction], b) b) -> b) -> b
- AllFudgets: compSP :: SP a1 a2 -> SP a3 b -> SP (Either a1 a3) (Either a2 b)
+ AllFudgets: compSP :: SP a a -> SP a b -> SP (Either a a) (Either a b)
- AllFudgets: compTurnLeft :: (Path, b1) -> Message (Path, b1) b2
+ AllFudgets: compTurnLeft :: (Path, b) -> Message (Path, b) b
- AllFudgets: compTurnRight :: (Path, b1) -> Message (Path, b1) b2
+ AllFudgets: compTurnRight :: (Path, b) -> Message (Path, b) b
- AllFudgets: containerGroupF :: Rect -> Rect -> Int -> Button -> [Modifiers] -> F c b -> F (Either (Rect, Rect) c) (Either Rect b)
+ AllFudgets: containerGroupF :: Rect -> Rect -> Int -> Button -> ModState -> F c b -> F (Either (Rect, Rect) c) (Either Rect b)
- AllFudgets: convGCSpecK :: (ColorGen a1, FudgetIO f, FontGen a2, Show a1, Show a2) => FontData -> [GCAttributes a1 a2] -> ([GCAttributes Pixel FontId] -> FontData -> f i o) -> f i o
+ AllFudgets: convGCSpecK :: (ColorGen a, FudgetIO f, FontGen a, Show a, Show a) => FontData -> [GCAttributes a a] -> ([GCAttributes Pixel FontId] -> FontData -> f i o) -> f i o
- AllFudgets: convGCattrsK :: FudgetIO f => [GCAttributes ColorName [Char]] -> ([GCAttributes Pixel FontId] -> f b ho) -> f b ho
+ AllFudgets: convGCattrsK :: FudgetIO f => [GCAttributes ColorName FontName] -> ([GCAttributes Pixel FontId] -> f hi ho) -> f hi ho
- AllFudgets: createGC :: FudgetIO f => Drawable -> GCId -> [GCAttributes Pixel FontId] -> (GCId -> f b ho) -> f b ho
+ AllFudgets: createGC :: FudgetIO f => Drawable -> GCId -> GCAttributeList -> (GCId -> f hi ho) -> f hi ho
- AllFudgets: createPixmap :: FudgetIO f => Point -> Int -> (PixmapId -> f b ho) -> f b ho
+ AllFudgets: createPixmap :: FudgetIO f => Size -> Depth -> (PixmapId -> f hi ho) -> f hi ho
- AllFudgets: ctrace :: Show a1 => [Char] -> a1 -> a2 -> a2
+ AllFudgets: ctrace :: Show a => [Char] -> a -> a -> a
- AllFudgets: darkGreyBgK :: K b ho -> K b ho
+ AllFudgets: darkGreyBgK :: K hi ho -> K hi ho
- AllFudgets: defaultVisual :: FudgetIO f => (Visual -> f b ho) -> f b ho
+ AllFudgets: defaultVisual :: FudgetIO f => (Visual -> f hi ho) -> f hi ho
- AllFudgets: drawingAnnotPart :: Drawing b leaf -> DPath -> [Int]
+ AllFudgets: drawingAnnotPart :: Drawing t leaf -> DPath -> [Int]
- AllFudgets: drawingPart :: Drawing lbl leaf -> DPath -> Drawing lbl leaf
+ AllFudgets: drawingPart :: Drawing lbl leaf -> [Int] -> Drawing lbl leaf
- AllFudgets: dropSP :: (t1 -> Maybe t2) -> (t2 -> SP t1 b) -> SP t1 b
+ AllFudgets: dropSP :: (t -> Maybe t) -> (t -> SP t b) -> SP t b
- AllFudgets: dynShapeK :: [GCAttributes ColorName [Char]] -> (Size -> [DrawCommand]) -> K c d -> K (Either (Size -> [DrawCommand]) c) (Either b d)
+ AllFudgets: dynShapeK :: [GCAttributes ColorName FontName] -> (Size -> [DrawCommand]) -> K c d -> K (Either (Size -> [DrawCommand]) c) (Either b d)
- AllFudgets: echoK :: FudgetIO f => [Char] -> f b ho -> f b ho
+ AllFudgets: echoK :: FudgetIO f => [Char] -> f hi ho -> f hi ho
- AllFudgets: echoStderrK :: FudgetIO f => [Char] -> f b ho -> f b ho
+ AllFudgets: echoStderrK :: FudgetIO f => [Char] -> f hi ho -> f hi ho
- AllFudgets: editorF' :: (EditorF -> EditorF) -> F EditCmd EditEvt
+ AllFudgets: editorF' :: Customiser EditorF -> F EditCmd EditEvt
- AllFudgets: exitK :: p -> K b ho
+ AllFudgets: exitK :: p -> K hi ho
- AllFudgets: filterLeft :: [Either b1 b2] -> [b1]
+ AllFudgets: filterLeft :: [Either b b] -> [b]
- AllFudgets: filterLeftSP :: SP (Either b1 b2) b1
+ AllFudgets: filterLeftSP :: SP (Either b b) b
- AllFudgets: fmove :: (Functor f, Move b) => Point -> f b -> f b
+ AllFudgets: fmove :: (Functor f, Move a) => Point -> f a -> f a
- AllFudgets: fontdata2struct :: FontData -> (FontStruct -> p) -> p
+ AllFudgets: fontdata2struct :: FontData -> (FontStruct -> t) -> t
- AllFudgets: getCurrentTime :: FudgetIO f => (UTCTime -> f b ho) -> f b ho
+ AllFudgets: getCurrentTime :: FudgetIO f => (UTCTime -> f hi ho) -> f hi ho
- AllFudgets: getLeftSP :: (t -> SP (Either t b1) b2) -> SP (Either t b1) b2
+ AllFudgets: getLeftSP :: (t -> SP (Either t b) b) -> SP (Either t b) b
- AllFudgets: getLocalTime :: FudgetIO f => (CalendarTime -> f b ho) -> f b ho
+ AllFudgets: getLocalTime :: FudgetIO f => (CalendarTime -> f hi ho) -> f hi ho
- AllFudgets: getLow :: FudgetIO f => (FResponse -> f b ho) -> f b ho
+ AllFudgets: getLow :: FudgetIO f => (FResponse -> f hi ho) -> f hi ho
- AllFudgets: getModificationTime :: FudgetIO f => FilePath -> (IOError -> f b ho) -> (ClockTime -> f b ho) -> f b ho
+ AllFudgets: getModificationTime :: FudgetIO f => FilePath -> (IOError -> f hi ho) -> (ClockTime -> f hi ho) -> f hi ho
- AllFudgets: getTime :: FudgetIO f => (ClockTime -> f b ho) -> f b ho
+ AllFudgets: getTime :: FudgetIO f => (ClockTime -> f hi ho) -> f hi ho
- AllFudgets: getZonedTime :: FudgetIO f => (ZonedTime -> f b ho) -> f b ho
+ AllFudgets: getZonedTime :: FudgetIO f => (ZonedTime -> f hi ho) -> f hi ho
- AllFudgets: gmap :: Foldable t1 => (t2 -> [a] -> [a]) -> (t3 -> t2) -> t1 t3 -> [a]
+ AllFudgets: gmap :: Foldable t => (t -> [a] -> [a]) -> (t -> t) -> t t -> [a]
- AllFudgets: grabberF :: [(a1, [(ModState, KeySym)])] -> F (Either a2 a1) (Either MenuState d) -> F a1 d
+ AllFudgets: grabberF :: [(b, [(ModState, KeySym)])] -> F (Either a b) (Either MenuState d) -> F b d
- AllFudgets: graphicsLabelF :: Graphic a => a -> F e d
+ AllFudgets: graphicsLabelF :: Graphic p => p -> F e d
- AllFudgets: graphicsLabelF' :: Graphic a => (GraphicsF a -> GraphicsF a) -> a -> F e d
+ AllFudgets: graphicsLabelF' :: Graphic p => (GraphicsF p -> GraphicsF p) -> p -> F e d
- AllFudgets: greyBgK :: K b ho -> K b ho
+ AllFudgets: greyBgK :: K hi ho -> K hi ho
- AllFudgets: hIO :: FudgetIO f => Request -> (Response -> f b ho) -> f b ho
+ AllFudgets: hIO :: FudgetIO f => Request -> (Response -> f hi ho) -> f hi ho
- AllFudgets: hIOSucc :: FudgetIO f => Request -> f b ho -> f b ho
+ AllFudgets: hIOSucc :: FudgetIO f => Request -> f hi ho -> f hi ho
- AllFudgets: hIOerr :: FudgetIO f => Request -> (IOError -> f b ho) -> (Response -> f b ho) -> f b ho
+ AllFudgets: hIOerr :: FudgetIO f => Request -> (IOError -> f hi ho) -> (Response -> f hi ho) -> f hi ho
- AllFudgets: haskellIO :: FudgetIO f => Request -> (Response -> f b ho) -> f b ho
+ AllFudgets: haskellIO :: FudgetIO f => Request -> (Response -> f hi ho) -> f hi ho
- AllFudgets: idHighSP :: SP a1 a2 -> SP (Message a1 b) (Message a2 b)
+ AllFudgets: idHighSP :: SP a a -> SP (Message a b) (Message a b)
- AllFudgets: idLeftSP :: SP a1 b -> SP (Either a2 a1) (Either a2 b)
+ AllFudgets: idLeftSP :: SP a b -> SP (Either a a) (Either a b)
- AllFudgets: idLowSP :: SP a1 b -> SP (Message a2 a1) (Message a2 b)
+ AllFudgets: idLowSP :: SP a b -> SP (Message a a) (Message a b)
- AllFudgets: idRightSP :: SP a1 a2 -> SP (Either a1 b) (Either a2 b)
+ AllFudgets: idRightSP :: SP a a -> SP (Either a b) (Either a b)
- AllFudgets: inputEditorF' :: (EditorF -> EditorF) -> F String (InputMsg String)
+ AllFudgets: inputEditorF' :: Customiser EditorF -> F String (InputMsg String)
- AllFudgets: inputListSP :: Eq a => [a] -> SP (a, InputMsg b) (InputMsg [(a, b)])
+ AllFudgets: inputListSP :: Eq p => [p] -> SP (p, InputMsg p) (InputMsg [(p, p)])
- AllFudgets: internAtom :: FudgetIO f => String -> Bool -> (Atom -> f b ho) -> f b ho
+ AllFudgets: internAtom :: FudgetIO f => String -> Bool -> (Atom -> f hi ho) -> f hi ho
- AllFudgets: interpSP :: (t1 -> t2 -> t2) -> ((a -> t2) -> t2) -> t2 -> SP a t1 -> t2
+ AllFudgets: interpSP :: (t -> t -> t) -> ((a -> t) -> t) -> t -> SP a t -> t
- AllFudgets: invisibleGroupF :: Sizing -> [FRequest] -> [WindowAttributes] -> F b ho -> F b ho
+ AllFudgets: invisibleGroupF :: Sizing -> [FRequest] -> [WindowAttributes] -> F hi ho -> F hi ho
- AllFudgets: isVisibleDrawingPart :: Drawing lbl leaf -> DPath -> Bool
+ AllFudgets: isVisibleDrawingPart :: Drawing lbl leaf -> [Int] -> Bool
- AllFudgets: issubset :: (Foldable t1, Foldable t2, Eq a) => t1 a -> t2 a -> Bool
+ AllFudgets: issubset :: (Foldable t, Foldable t, Eq a) => t a -> t a -> Bool
- AllFudgets: knobBgK :: K b ho -> K b ho
+ AllFudgets: knobBgK :: K hi ho -> K hi ho
- AllFudgets: labAboveF :: Graphic g => g -> F c d -> F c d
+ AllFudgets: labAboveF :: Graphic p => p -> F c d -> F c d
- AllFudgets: labBelowF :: Graphic g => g -> F c d -> F c d
+ AllFudgets: labBelowF :: Graphic p => p -> F c d -> F c d
- AllFudgets: labLeftOfF :: Graphic g => g -> F c d -> F c d
+ AllFudgets: labLeftOfF :: Graphic p => p -> F c d -> F c d
- AllFudgets: labRightOfF :: Graphic g => g -> F c d -> F c d
+ AllFudgets: labRightOfF :: Graphic p => p -> F c d -> F c d
- AllFudgets: labelF :: Graphic g => g -> F a b
+ AllFudgets: labelF :: Graphic a => a -> F a b
- AllFudgets: labelF' :: Graphic g => Customiser (DisplayF g) -> g -> F a b
+ AllFudgets: labelF' :: Graphic a => Customiser (DisplayF a) -> a -> F a b
- AllFudgets: leafF :: a1 -> F b1 b2 -> Fa TEvent TCommand ([a2], b1) (a1, b2)
+ AllFudgets: leafF :: a -> F b c -> Fa TEvent TCommand ([a], b) (a, c)
- AllFudgets: lhead :: [a1] -> [a2] -> [a2]
+ AllFudgets: lhead :: [a] -> [a] -> [a]
- AllFudgets: lightGreyBgK :: K b ho -> K b ho
+ AllFudgets: lightGreyBgK :: K hi ho -> K hi ho
- AllFudgets: listFonts :: FudgetIO f => [Char] -> Int -> ([FontName] -> f b ho) -> f b ho
+ AllFudgets: listFonts :: FudgetIO f => FontName -> Int -> ([FontName] -> f hi ho) -> f hi ho
- AllFudgets: listFontsF :: [Char] -> Int -> Cont (F b c) [FontName]
+ AllFudgets: listFontsF :: FontName -> Int -> Cont (F b c) [FontName]
- AllFudgets: listFontsWithInfo :: FudgetIO f => [Char] -> Int -> ([(FontName, FontStructF (Array Char CharStruct))] -> f b ho) -> f b ho
+ AllFudgets: listFontsWithInfo :: FudgetIO f => FontName -> Int -> ([(FontName, FontStructF (Array Char CharStruct))] -> f hi ho) -> f hi ho
- AllFudgets: loadFont :: FudgetIO f => [Char] -> (FontId -> f b ho) -> f b ho
+ AllFudgets: loadFont :: FudgetIO f => FontName -> (FontId -> f hi ho) -> f hi ho
- AllFudgets: loadFontF :: [Char] -> Cont (F b c) FontId
+ AllFudgets: loadFontF :: FontName -> Cont (F b c) FontId
- AllFudgets: loadQueryFont :: FudgetIO f => [Char] -> (Maybe (FontStructF (Array Char CharStruct)) -> f b ho) -> f b ho
+ AllFudgets: loadQueryFont :: FudgetIO f => FontName -> (Maybe (FontStructF (Array Char CharStruct)) -> f hi ho) -> f hi ho
- AllFudgets: loadQueryFontF :: [Char] -> Cont (F b c) (Maybe (FontStructF (Array Char CharStruct)))
+ AllFudgets: loadQueryFontF :: FontName -> Cont (F b c) (Maybe (FontStructF (Array Char CharStruct)))
- AllFudgets: loopCompSP :: SP (Either (Either a1 b1) (Either a2 b2)) (Either (Either a2 a3) (Either a1 b3)) -> SP (Either b1 b2) (Either a3 b3)
+ AllFudgets: loopCompSP :: SP (Either (Either a b) (Either a b)) (Either (Either a a) (Either a b)) -> SP (Either b b) (Either a b)
- AllFudgets: loopLeftSP :: SP (Either a1 a2) (Either a1 b) -> SP a2 b
+ AllFudgets: loopLeftSP :: SP (Either a b) (Either a b) -> SP b b
- AllFudgets: loopThroughBothSP :: SP (Either a1 b1) (Either a2 a3) -> SP (Either a2 b2) (Either a1 b3) -> SP (Either b1 b2) (Either a3 b3)
+ AllFudgets: loopThroughBothSP :: SP (Either a b) (Either a a) -> SP (Either a b) (Either a b) -> SP (Either b b) (Either a b)
- AllFudgets: loopThroughRightSP :: SP (Either a1 a2) (Either a3 b) -> SP a3 a1 -> SP a2 b
+ AllFudgets: loopThroughRightSP :: SP (Either a b) (Either a b) -> SP a a -> SP b b
- AllFudgets: lsplit :: [a1] -> [a2] -> ([a2], [a2])
+ AllFudgets: lsplit :: [a] -> [a] -> ([a], [a])
- AllFudgets: ltail :: [a1] -> [a2] -> [a2]
+ AllFudgets: ltail :: [a] -> [a] -> [a]
- AllFudgets: lunconcat :: [[a1]] -> [a2] -> [[a2]]
+ AllFudgets: lunconcat :: [[a]] -> [a] -> [[a]]
- AllFudgets: mapEither :: (t1 -> a) -> (t2 -> b) -> Either t1 t2 -> Either a b
+ AllFudgets: mapEither :: (t -> a) -> (t -> b) -> Either t t -> Either a b
- AllFudgets: mapHigh :: (t -> [b]) -> SP (Message a t) (Message a b)
+ AllFudgets: mapHigh :: (t -> [a]) -> SP (Message a t) (Message a a)
- AllFudgets: mapMessage :: (t1 -> a) -> (t2 -> b) -> Message t1 t2 -> Message a b
+ AllFudgets: mapMessage :: (t -> a) -> (t -> b) -> Message t t -> Message a b
- AllFudgets: mapPair :: (t1 -> a, t2 -> b) -> (t1, t2) -> (a, b)
+ AllFudgets: mapPair :: (t -> a, t -> b) -> (t, t) -> (a, b)
- AllFudgets: mapstateHigh :: (t1 -> t2 -> (t1, [b])) -> t1 -> SP (Message a t2) (Message a b)
+ AllFudgets: mapstateHigh :: (t -> t -> (t, [b])) -> t -> SP (Message a t) (Message a b)
- AllFudgets: mapstateLow :: (t1 -> t2 -> (t1, [a])) -> t1 -> SP (Message t2 b) (Message a b)
+ AllFudgets: mapstateLow :: (t -> t -> (t, [a])) -> t -> SP (Message t b) (Message a b)
- AllFudgets: maybeDrawingPart :: Drawing lbl leaf -> DPath -> Maybe (Drawing lbl leaf)
+ AllFudgets: maybeDrawingPart :: Drawing lbl leaf -> [Int] -> Maybe (Drawing lbl leaf)
- AllFudgets: measureImageString :: FudgetIO f => [Char] -> GCtx -> (MeasuredGraphics -> f b ho) -> f b ho
+ AllFudgets: measureImageString :: FudgetIO f => String -> GCtx -> (MeasuredGraphics -> f hi ho) -> f hi ho
- AllFudgets: measureString :: FudgetIO f => [Char] -> GCtx -> (MeasuredGraphics -> f b ho) -> f b ho
+ AllFudgets: measureString :: FudgetIO f => String -> GCtx -> (MeasuredGraphics -> f hi ho) -> f hi ho
- AllFudgets: measureText :: (FudgetIO f, Show a) => a -> GCtx -> (MeasuredGraphics -> f b ho) -> f b ho
+ AllFudgets: measureText :: (FudgetIO f, Show a) => a -> GCtx -> (MeasuredGraphics -> f hi ho) -> f hi ho
- AllFudgets: menuAltsF :: (Eq d, Graphic b) => [Char] -> [d] -> (d -> b) -> F PopupMenu d
+ AllFudgets: menuAltsF :: (Eq d, Graphic b) => FontName -> [d] -> (d -> b) -> F PopupMenu d
- AllFudgets: message :: (t1 -> p) -> (t2 -> p) -> Message t1 t2 -> p
+ AllFudgets: message :: (t -> t) -> (t -> t) -> Message t t -> t
- AllFudgets: oldButtonF :: (Graphic e, FontGen a1, Show a1, Show a2, ColorGen a2) => Double -> Int -> a1 -> ColorSpec -> a2 -> [(ModState, KeySym)] -> e -> F e Click
+ AllFudgets: oldButtonF :: (Graphic e, FontGen p, Show p, Show p, ColorGen p) => Alignment -> Distance -> p -> ColorSpec -> p -> [(ModState, KeySym)] -> e -> F e Click
- AllFudgets: oldFilePickF :: F String (InputMsg String)
+ AllFudgets: oldFilePickF :: F FilePath (InputMsg String)
- AllFudgets: oldPopupMenuF :: (Eq b1, Graphic b2, Foldable t) => ColorName -> Bool -> [Char] -> Button -> [Modifiers] -> t (ModState, KeySym) -> [(b1, b3)] -> (b1 -> b2) -> F c d -> F (Either [(b1, b4)] c) (Either b1 d)
+ AllFudgets: oldPopupMenuF :: (Eq b, Graphic b, Foldable t) => ColorName -> Bool -> FontName -> Button -> ModState -> t (ModState, KeySym) -> [(b, b)] -> (b -> b) -> F c d -> F (Either [(b, b)] c) (Either b d)
- AllFudgets: oldPopupMenuF' :: forall t b1 b2 b3 c d a b4 b5. (Eq b1, Graphic b2, Foldable t) => ColorName -> Bool -> [Char] -> Button -> [Modifiers] -> t (ModState, KeySym) -> [(b1, b3)] -> (b1 -> b2) -> F c d -> F (Either (Either a b4) (Either (Either [(b1, b5)] PopupMenu) c)) (Either (Either (Either a PopupMenu) b4) (Either b1 d))
+ AllFudgets: oldPopupMenuF' :: forall {t} {b} {b} {b} {c} {d} {a} {a} {b}. (Eq b, Graphic b, Foldable t) => ColorName -> Bool -> FontName -> Button -> ModState -> t (ModState, KeySym) -> [(b, b)] -> (b -> b) -> F c d -> F (Either (Either a a) (Either (Either [(b, b)] PopupMenu) c)) (Either (Either (Either a PopupMenu) a) (Either b d))
- AllFudgets: oldRadioGroupF :: (Eq d, Graphic a1, Show a2, FontGen a2) => Placer -> Bool -> a2 -> [d] -> d -> (d -> a1) -> F d d
+ AllFudgets: oldRadioGroupF :: (Eq d, Graphic p1, Show p, FontGen p) => Placer -> Bool -> p -> [d] -> d -> (d -> p1) -> F d d
- AllFudgets: oldToggleButtonF :: (Graphic a1, Show a2, FontGen a2) => a2 -> [(ModState, KeySym)] -> a1 -> F Bool Bool
+ AllFudgets: oldToggleButtonF :: (Graphic p, Show p, FontGen p) => p -> [(ModState, KeySym)] -> p -> F Bool Bool
- AllFudgets: oldToggleButtonF' :: (Graphic a1, Show a2, FontGen a2) => Bool -> a2 -> [(ModState, KeySym)] -> a1 -> F Bool Bool
+ AllFudgets: oldToggleButtonF' :: (Graphic p, Show p, FontGen p) => Bool -> p -> [(ModState, KeySym)] -> p -> F Bool Bool
- AllFudgets: oo :: (t1 -> t2) -> (t3 -> t4 -> t1) -> t3 -> t4 -> t2
+ AllFudgets: oo :: (t -> t) -> (t -> t -> t) -> t -> t -> t
- AllFudgets: openFileAsSocketErrF :: FudgetIO f => String -> String -> (IOError -> f b ho) -> (Socket -> f b ho) -> f b ho
+ AllFudgets: openFileAsSocketErrF :: FudgetIO f => String -> String -> (IOError -> f hi ho) -> (Socket -> f hi ho) -> f hi ho
- AllFudgets: openFileAsSocketF :: FudgetIO f => String -> String -> (Socket -> f b ho) -> f b ho
+ AllFudgets: openFileAsSocketF :: FudgetIO f => String -> String -> (Socket -> f hi ho) -> f hi ho
- AllFudgets: openLSocketErrF :: FudgetIO f => Port -> (IOError -> f b ho) -> (LSocket -> f b ho) -> f b ho
+ AllFudgets: openLSocketErrF :: FudgetIO f => Port -> (IOError -> f hi ho) -> (LSocket -> f hi ho) -> f hi ho
- AllFudgets: openLSocketF :: FudgetIO f => Port -> (LSocket -> f b ho) -> f b ho
+ AllFudgets: openLSocketF :: FudgetIO f => Port -> (LSocket -> f hi ho) -> f hi ho
- AllFudgets: openSocketErrF :: FudgetIO f => Host -> Port -> (IOError -> f b ho) -> (Socket -> f b ho) -> f b ho
+ AllFudgets: openSocketErrF :: FudgetIO f => Host -> Port -> (IOError -> f hi ho) -> (Socket -> f hi ho) -> f hi ho
- AllFudgets: openSocketF :: FudgetIO f => Host -> Port -> (Socket -> f b ho) -> f b ho
+ AllFudgets: openSocketF :: FudgetIO f => Host -> Port -> (Socket -> f hi ho) -> f hi ho
- AllFudgets: plookup :: Foldable t => (a -> Bool) -> t (a, b) -> Maybe b
+ AllFudgets: plookup :: Foldable t => (b -> Bool) -> t (b, b) -> Maybe b
- AllFudgets: pmCreateGC :: FudgetIO f => PixmapId -> GCId -> [GCAttributes Pixel FontId] -> (GCId -> f b ho) -> f b ho
+ AllFudgets: pmCreateGC :: FudgetIO f => PixmapId -> GCId -> GCAttributeList -> (GCId -> f hi ho) -> f hi ho
- AllFudgets: popupGroupF :: (Size -> Point, [WindowAttributes], K b1 d1) -> F b2 d2 -> F (PopupMsg b2) d2
+ AllFudgets: popupGroupF :: (Size -> Point, [WindowAttributes], K b d) -> F b d -> F (PopupMsg b) d
- AllFudgets: popupMenuF :: (Eq b1, Graphic b1) => [(a, b1)] -> F c b2 -> F (Either [(a, b1)] c) (Either a b2)
+ AllFudgets: popupMenuF :: (Eq b, Graphic b) => [(a, b)] -> F c b -> F (Either [(a, b)] c) (Either a b)
- AllFudgets: posPopupShellF :: [Char] -> [WindowAttributes] -> F c a -> F (c, Maybe Point) (c, a)
+ AllFudgets: posPopupShellF :: String -> [WindowAttributes] -> F c a -> F (c, Maybe Point) (c, a)
- AllFudgets: prepostMapSP :: (t1 -> a) -> (t2 -> b) -> SP a t2 -> SP t1 b
+ AllFudgets: prepostMapSP :: (t -> a) -> (t -> b) -> SP a t -> SP t b
- AllFudgets: pullSP :: SP a1 a2 -> ([a2], SP a1 a2)
+ AllFudgets: pullSP :: SP a a -> ([a], SP a a)
- AllFudgets: pushButtonF :: [(ModState, KeySym)] -> F b1 b2 -> F b1 (Either b2 Click)
+ AllFudgets: pushButtonF :: [(ModState, KeySym)] -> F a b -> F a (Either b Click)
- AllFudgets: pushButtonF' :: Int -> [(ModState, KeySym)] -> F b1 b2 -> F b1 (Either b2 Click)
+ AllFudgets: pushButtonF' :: Int -> [(ModState, KeySym)] -> F a b -> F a (Either b Click)
- AllFudgets: pushMsg :: Functor f => Message (f a) (f b) -> f (Message a b)
+ AllFudgets: pushMsg :: Functor f => Message (f a) (f a) -> f (Message a a)
- AllFudgets: putHighsMs :: (Foldable t, StreamProcIO sp) => t o -> Msc (sp i o) r
+ AllFudgets: putHighsMs :: (Foldable t, StreamProcIO sp) => t a -> Msc (sp i a) r
- AllFudgets: puts :: (Foldable t, StreamProcIO sp) => t o -> sp i o -> sp i o
+ AllFudgets: puts :: (Foldable t, StreamProcIO sp) => t a -> sp i a -> sp i a
- AllFudgets: queryColor :: FudgetIO f => ColormapId -> Pixel -> (Color -> f b ho) -> f b ho
+ AllFudgets: queryColor :: FudgetIO f => ColormapId -> Pixel -> (Color -> f hi ho) -> f hi ho
- AllFudgets: queryFont :: FudgetIO f => FontId -> (FontStructF (Array Char CharStruct) -> f b ho) -> f b ho
+ AllFudgets: queryFont :: FudgetIO f => FontId -> (FontStructF (Array Char CharStruct) -> f hi ho) -> f hi ho
- AllFudgets: radioF :: (Eq a, Graphic a1, Show a2, FontGen a2) => Placer -> Bool -> a2 -> [(a, a1)] -> a -> F a a
+ AllFudgets: radioF :: (Eq d, Graphic p1, Show p, FontGen p) => Placer -> Bool -> p -> [(d, p1)] -> d -> F d d
- AllFudgets: readBitmapFile :: FudgetIO f => [Char] -> (BitmapReturn -> f b ho) -> f b ho
+ AllFudgets: readBitmapFile :: FudgetIO f => FilePath -> (BitmapReturn -> f hi ho) -> f hi ho
- AllFudgets: replacePart :: Drawing lbl leaf -> DPath -> Drawing lbl leaf -> Drawing lbl leaf
+ AllFudgets: replacePart :: Drawing lbl leaf -> [Int] -> Drawing lbl leaf -> Drawing lbl leaf
- AllFudgets: rmBS :: [Char] -> [Char]
+ AllFudgets: rmBS :: [Char] -> String
- AllFudgets: rootPopupF :: (Size -> Point, [WindowAttributes], K b1 d1) -> F b2 d2 -> F (PopupMsg b2) d2
+ AllFudgets: rootPopupF :: (Size -> Point, [WindowAttributes], K b d) -> F b d -> F (PopupMsg b) d
- AllFudgets: runSP :: SP a1 a2 -> [a1] -> [a2]
+ AllFudgets: runSP :: SP a a -> [a] -> [a]
- AllFudgets: sIO :: FudgetIO f => SocketRequest -> (SocketResponse -> f b ho) -> f b ho
+ AllFudgets: sIO :: FudgetIO f => SocketRequest -> (SocketResponse -> f hi ho) -> f hi ho
- AllFudgets: sIOerr :: FudgetIO f => SocketRequest -> (IOError -> f b ho) -> (SocketResponse -> f b ho) -> f b ho
+ AllFudgets: sIOerr :: FudgetIO f => SocketRequest -> (IOError -> f hi ho) -> (SocketResponse -> f hi ho) -> f hi ho
- AllFudgets: sIOstr :: FudgetIO f => SocketRequest -> (String -> f b ho) -> f b ho
+ AllFudgets: sIOstr :: FudgetIO f => SocketRequest -> (String -> f hi ho) -> f hi ho
- AllFudgets: sIOsucc :: FudgetIO f => SocketRequest -> f b ho -> f b ho
+ AllFudgets: sIOsucc :: FudgetIO f => SocketRequest -> f hi ho -> f hi ho
- AllFudgets: safeLoadQueryFont :: FudgetIO f => FontName -> (FontStructF (Array Char CharStruct) -> f b ho) -> f b ho
+ AllFudgets: safeLoadQueryFont :: FudgetIO f => FontName -> (FontStructF (Array Char CharStruct) -> f hi ho) -> f hi ho
- AllFudgets: scale :: (RealFrac a1, Integral b, Integral a2) => a1 -> a2 -> b
+ AllFudgets: scale :: (RealFrac a, Integral b, Integral a) => a -> a -> b
- AllFudgets: scrollShellF :: [Char] -> (Point, Point) -> F c d -> F c d
+ AllFudgets: scrollShellF :: String -> (Point, Point) -> F c d -> F c d
- AllFudgets: serCompF :: F a1 b -> F a2 a1 -> F a2 b
+ AllFudgets: serCompF :: F a b -> F a a -> F a b
- AllFudgets: serCompLF :: (F a1 f, Orientation) -> F e a1 -> F e f
+ AllFudgets: serCompLF :: (F d f, Orientation) -> F e d -> F e f
- AllFudgets: serCompSP :: SP a1 b -> SP a2 a1 -> SP a2 b
+ AllFudgets: serCompSP :: SP a b -> SP a a -> SP a b
- AllFudgets: setBgColor :: (HasBgColorSpec xxx, Show a, ColorGen a) => a -> Customiser xxx
+ AllFudgets: setBgColor :: (HasBgColorSpec xxx, Show p, ColorGen p) => p -> Customiser xxx
- AllFudgets: setFgColor :: (HasFgColorSpec xxx, Show a, ColorGen a) => a -> Customiser xxx
+ AllFudgets: setFgColor :: (HasFgColorSpec xxx, Show p, ColorGen p) => p -> Customiser xxx
- AllFudgets: setFst :: (a1, b) -> a2 -> (a2, b)
+ AllFudgets: setFst :: (a, b) -> a -> (a, b)
- AllFudgets: setSnd :: (a, b1) -> b2 -> (a, b2)
+ AllFudgets: setSnd :: (a, b) -> b -> (a, b)
- AllFudgets: shellF :: [Char] -> F c d -> F c d
+ AllFudgets: shellF :: String -> F c d -> F c d
- AllFudgets: shellF' :: Customiser ShellF -> [Char] -> F c d -> F c d
+ AllFudgets: shellF' :: Customiser ShellF -> String -> F c d -> F c d
- AllFudgets: simpleF :: [Char] -> (Drawer -> Drawer -> Fms' a c d) -> Size -> a -> F c d
+ AllFudgets: simpleF :: String -> (Drawer -> Drawer -> Fms' a c d) -> Size -> a -> F c d
- AllFudgets: simpleGroupF :: [WindowAttributes] -> F b ho -> F b ho
+ AllFudgets: simpleGroupF :: [WindowAttributes] -> F hi ho -> F hi ho
- AllFudgets: simpleShellF :: [Char] -> [WindowAttributes] -> F c d -> F c d
+ AllFudgets: simpleShellF :: String -> [WindowAttributes] -> F c d -> F c d
- AllFudgets: simpleWindowF :: (Drawer -> Drawer -> Fms' a1 a2 b) -> Size -> Bool -> Bool -> a1 -> F a2 b
+ AllFudgets: simpleWindowF :: (Drawer -> Drawer -> Fms' a a b) -> Size -> Bool -> Bool -> a -> F a b
- AllFudgets: splitEitherList :: [Either a1 a2] -> ([a1], [a2])
+ AllFudgets: splitEitherList :: [Either a a] -> ([a], [a])
- AllFudgets: spyF :: (Show b, Show a2) => F a2 b -> F a2 b
+ AllFudgets: spyF :: (Show b, Show a1) => F a1 b -> F a1 b
- AllFudgets: stateK :: b1 -> Mk (b1 -> a) b2 -> a -> a
+ AllFudgets: stateK :: t -> Mk (t -> t) r -> t -> t
- AllFudgets: stateMonadK :: p -> Mk (p -> t1) t2 -> (t2 -> t1) -> t1
+ AllFudgets: stateMonadK :: t -> Mk (t -> t) t -> (t -> t) -> t
- AllFudgets: stdinF :: F b String
+ AllFudgets: stdinF :: F hi String
- AllFudgets: stripEither :: Either p p -> p
+ AllFudgets: stripEither :: Either a a -> a
- AllFudgets: stripHigh :: Message a1 a2 -> Maybe a2
+ AllFudgets: stripHigh :: Message a a -> Maybe a
- AllFudgets: stripInputMsg :: InputMsg p -> p
+ AllFudgets: stripInputMsg :: InputMsg a -> a
- AllFudgets: stripRight :: Either a1 a2 -> Maybe a2
+ AllFudgets: stripRight :: Either a a -> Maybe a
- AllFudgets: swindowF :: [FRequest] -> Maybe Rect -> K a ho -> F a ho
+ AllFudgets: swindowF :: [FRequest] -> Maybe Rect -> K hi ho -> F hi ho
- AllFudgets: tieLabelF :: Graphic g => Orientation -> Double -> g -> F c d -> F c d
+ AllFudgets: tieLabelF :: Graphic p => Orientation -> Alignment -> p -> F c d -> F c d
- AllFudgets: toKernel :: [b1] -> [Message (Path, b1) b2]
+ AllFudgets: toKernel :: [a] -> [Message (Path, a) b]
- AllFudgets: toggleF :: Bool -> [(ModState, KeySym)] -> F c b -> F (Either Bool c) (Either Bool b)
+ AllFudgets: toggleF :: Bool -> [(ModState, KeySym)] -> F a b -> F (Either Bool a) (Either Bool b)
- AllFudgets: tryAllocColor :: FudgetIO f => ColormapId -> RGB -> (Maybe Color -> f b ho) -> f b ho
+ AllFudgets: tryAllocColor :: FudgetIO f => ColormapId -> RGB -> (Maybe Color -> f hi ho) -> f hi ho
- AllFudgets: tryAllocNamedColor :: FudgetIO f => ColormapId -> ColorName -> (Maybe Color -> f b ho) -> f b ho
+ AllFudgets: tryAllocNamedColor :: FudgetIO f => ColormapId -> ColorName -> (Maybe Color -> f hi ho) -> f hi ho
- AllFudgets: tryConvColorRGBK :: FudgetIO f => RGB -> (Maybe Pixel -> f b ho) -> f b ho
+ AllFudgets: tryConvColorRGBK :: FudgetIO f => RGB -> (Maybe Pixel -> f hi ho) -> f hi ho
- AllFudgets: tryLoadFont :: FudgetIO f => [Char] -> (Maybe FontId -> f b ho) -> f b ho
+ AllFudgets: tryLoadFont :: FudgetIO f => FontName -> (Maybe FontId -> f hi ho) -> f hi ho
- AllFudgets: tstInp :: (t -> p) -> InputMsg t -> p
+ AllFudgets: tstInp :: (t -> t) -> InputMsg t -> t
- AllFudgets: unionmap :: (Foldable t1, Eq a) => (t2 -> [a]) -> t1 t2 -> [a]
+ AllFudgets: unionmap :: (Foldable t, Eq a) => (t -> [a]) -> t t -> [a]
- AllFudgets: updatePart :: Drawing lbl leaf -> DPath -> (Drawing lbl leaf -> Drawing lbl leaf) -> Drawing lbl leaf
+ AllFudgets: updatePart :: Drawing lbl leaf -> [Int] -> (Drawing lbl leaf -> Drawing lbl leaf) -> Drawing lbl leaf
- AllFudgets: version :: [Char]
+ AllFudgets: version :: String
- AllFudgets: wCreateGC :: FudgetIO f => GCId -> [GCAttributes Pixel FontId] -> (GCId -> f b ho) -> f b ho
+ AllFudgets: wCreateGC :: FudgetIO f => GCId -> GCAttributeList -> (GCId -> f hi ho) -> f hi ho
- AllFudgets: walkSP :: SP a1 a2 -> a1 -> ([a2], SP a1 a2)
+ AllFudgets: walkSP :: SP a a -> a -> ([a], SP a a)
- AllFudgets: xrequest :: FudgetIO f => XRequest -> (XResponse -> Maybe ans) -> (ans -> f b ho) -> f b ho
+ AllFudgets: xrequest :: FudgetIO f => XRequest -> (XResponse -> Maybe ans) -> (ans -> f hi ho) -> f hi ho
- ConnectF: (>&<) :: forall (f2 :: Type -> Type) (f1 :: Type -> Type) i o1 h b o2. (Tag f2, Tag f1) => TagF i o1 h f1 -> TagF b o2 h f2 -> TagF (Either i b) (Either o1 o2) h (Tags f1 f2)
+ ConnectF: (>&<) :: forall {f2 :: Type -> Type} {f1 :: Type -> Type} {i} {a} {h} {b} {b}. (Tag f2, Tag f1) => TagF i a h f1 -> TagF b b h f2 -> TagF (Either i b) (Either a b) h (Tags f1 f2)
- ConnectF: compTagF :: forall (f2 :: Type -> Type) (f1 :: Type -> Type) i o1 b o2 h. (Tag f2, Tag f1) => (F i o1 -> F b o2 -> F (Either i b) (Either o1 o2)) -> TagF i o1 h f1 -> TagF b o2 h f2 -> TagF (Either i b) (Either o1 o2) h (Tags f1 f2)
+ ConnectF: compTagF :: forall {f2 :: Type -> Type} {f1 :: Type -> Type} {i} {a} {b} {b} {h}. (Tag f2, Tag f1) => (F i a -> F b b -> F (Either i b) (Either a b)) -> TagF i a h f1 -> TagF b b h f2 -> TagF (Either i b) (Either a b) h (Tags f1 f2)
- ConnectF: left :: (a1 -> Maybe a2) -> Either a1 p -> Maybe a2
+ ConnectF: left :: (a -> Maybe a) -> Either a b -> Maybe a
- ConnectF: leftleft :: (a1 -> Maybe a2) -> Either (Either a1 p1) p2 -> Maybe a2
+ ConnectF: leftleft :: (a -> Maybe a) -> Either (Either a b) b -> Maybe a
- ConnectF: leftyes :: Either a p -> Maybe a
+ ConnectF: leftyes :: Either a b -> Maybe a
- ConnectF: ltr :: forall (f2 :: Type -> Type) b1 c a o b2. Tag f2 => (b1 -> c) -> TagF a o c f2 -> (F a o, Either o b1 -> c, Tags ((->) b2 :: Type -> Type) f2 (Either a b2))
+ ConnectF: ltr :: forall {f2 :: Type -> Type} {b} {c} {b} {a} {b}. Tag f2 => (b -> c) -> TagF b a c f2 -> (F b a, Either a b -> c, Tags (FUN 'Many b :: TYPE LiftedRep -> Type) f2 (Either b b))
- ConnectF: mapTF :: forall i o h (t :: Type -> Type). (F i o -> F i o) -> TagF i o h t -> TagF i o h t
+ ConnectF: mapTF :: forall {i} {o} {h} {t :: Type -> Type}. (F i o -> F i o) -> TagF i o h t -> TagF i o h t
- ConnectF: right :: (b -> Maybe a) -> Either p b -> Maybe a
+ ConnectF: right :: (b -> Maybe a) -> Either a b -> Maybe a
- ConnectF: tagF :: (o -> h) -> F i o -> TagF i o h ((->) i :: Type -> Type)
+ ConnectF: tagF :: (o -> h) -> F i o -> TagF i o h (FUN 'Many i :: TYPE LiftedRep -> Type)
- ContribFudgets: auxShellF :: [Char] -> F c b -> F (Either Bool c) (Either Bool b)
+ ContribFudgets: auxShellF :: String -> F c b -> F (Either Bool c) (Either Bool b)
- ContribFudgets: auxShellF' :: (ShellF -> ShellF) -> [Char] -> F c b -> F (Either Bool c) (Either Bool b)
+ ContribFudgets: auxShellF' :: (ShellF -> ShellF) -> String -> F c b -> F (Either Bool c) (Either Bool b)
- ContribFudgets: bitmapButtonF :: [(ModState, KeySym)] -> [Char] -> F BitmapReturn Click
+ ContribFudgets: bitmapButtonF :: [(ModState, KeySym)] -> FilePath -> F BitmapReturn Click
- ContribFudgets: cmdItem :: Graphic a1 => a2 -> a1 -> Item (MenuItem a2)
+ ContribFudgets: cmdItem :: Graphic a => p -> a -> Item (MenuItem p)
- ContribFudgets: compT :: Transl l g -> Transl c l -> Transl c g
+ ContribFudgets: compT :: Transl b g -> Transl l b -> Transl l g
- ContribFudgets: delayedAuxShellF :: [Char] -> F c b -> F (Either Bool c) (Either Bool b)
+ ContribFudgets: delayedAuxShellF :: String -> F c b -> F (Either Bool c) (Either Bool b)
- ContribFudgets: delayedAuxShellF' :: (ShellF -> ShellF) -> [Char] -> F c b -> F (Either Bool c) (Either Bool b)
+ ContribFudgets: delayedAuxShellF' :: (ShellF -> ShellF) -> String -> F c b -> F (Either Bool c) (Either Bool b)
- ContribFudgets: delayedSubMenuItem :: (Graphic a1, Eq b) => Transl b a2 -> Menu b -> a1 -> Item (MenuItem a2)
+ ContribFudgets: delayedSubMenuItem :: (Graphic a, Eq b) => Transl b a -> Menu b -> a -> Item (MenuItem a)
- ContribFudgets: dynRadioGroupItem :: (Graphic a1, Eq b) => Transl ([Item b], b) a2 -> [Item b] -> b -> a1 -> Item (MenuItem a2)
+ ContribFudgets: dynRadioGroupItem :: (Graphic a, Eq a) => Transl ([Item a], a) a -> [Item a] -> a -> a -> Item (MenuItem a)
- ContribFudgets: endButtonsF' :: F [Char] (Either Click Click)
+ ContribFudgets: endButtonsF' :: F String (Either Click Click)
- ContribFudgets: filePickF :: F ([Char], Maybe FilePath) (Maybe FilePath)
+ ContribFudgets: filePickF :: F (String, Maybe FilePath) (Maybe FilePath)
- ContribFudgets: filePickF' :: Graphic lbl => [(AFilePath -> AFilePath, KeySym, lbl)] -> F ([Char], Maybe FilePath) (Maybe FilePath)
+ ContribFudgets: filePickF' :: Graphic t3 => [(AFilePath -> AFilePath, KeySym, t3)] -> F (String, Maybe FilePath) (Maybe FilePath)
- ContribFudgets: filePickPopupF :: F (a, ([Char], Maybe FilePath)) ((a, ([Char], Maybe FilePath)), FilePath)
+ ContribFudgets: filePickPopupF :: F (a, (String, Maybe FilePath)) ((a, (String, Maybe FilePath)), FilePath)
- ContribFudgets: filePickPopupF' :: Graphic lbl => [(AFilePath -> AFilePath, KeySym, lbl)] -> F (a, ([Char], Maybe FilePath)) ((a, ([Char], Maybe FilePath)), FilePath)
+ ContribFudgets: filePickPopupF' :: Graphic t3 => [(AFilePath -> AFilePath, KeySym, t3)] -> F (a, (String, Maybe FilePath)) ((a, (String, Maybe FilePath)), FilePath)
- ContribFudgets: filePickPopupOptF :: F (a, ([Char], Maybe FilePath)) ((a, ([Char], Maybe FilePath)), Maybe FilePath)
+ ContribFudgets: filePickPopupOptF :: F (a, (String, Maybe FilePath)) ((a, (String, Maybe FilePath)), Maybe FilePath)
- ContribFudgets: filePickPopupOptF' :: Graphic lbl => [(AFilePath -> AFilePath, KeySym, lbl)] -> F (a, ([Char], Maybe FilePath)) ((a, ([Char], Maybe FilePath)), Maybe FilePath)
+ ContribFudgets: filePickPopupOptF' :: Graphic t3 => [(AFilePath -> AFilePath, KeySym, t3)] -> F (a, (String, Maybe FilePath)) ((a, (String, Maybe FilePath)), Maybe FilePath)
- ContribFudgets: fileShellF :: (c1 -> String, String -> Either String c1, Maybe c1) -> [Char] -> F c1 (InputMsg c1) -> F c2 d
+ ContribFudgets: fileShellF :: (c -> String, String -> Either String c, Maybe c) -> [Char] -> F c (InputMsg c) -> F c d
- ContribFudgets: fileShellF' :: (ShellF -> ShellF) -> (c1 -> String, String -> Either String c1, Maybe c1) -> [Char] -> F c1 (InputMsg c1) -> F c2 d
+ ContribFudgets: fileShellF' :: (ShellF -> ShellF) -> (c -> String, String -> Either String c, Maybe c) -> [Char] -> F c (InputMsg c) -> F c d
- ContribFudgets: hSplitF :: F a1 a2 -> F c b -> F (Either a1 c) (Either a2 b)
+ ContribFudgets: hSplitF :: F a a -> F b b -> F (Either a b) (Either a b)
- ContribFudgets: hSplitF' :: Double -> F a1 a2 -> F c b -> F (Either a1 c) (Either a2 b)
+ ContribFudgets: hSplitF' :: Alignment -> F a a -> F b b -> F (Either a b) (Either a b)
- ContribFudgets: helpBubbleF :: Graphic g => g -> F c d -> F c d
+ ContribFudgets: helpBubbleF :: Graphic a1 => a1 -> F c d -> F c d
- ContribFudgets: idT :: Transl b b
+ ContribFudgets: idT :: Transl g g
- ContribFudgets: item :: Graphic a1 => a2 -> a1 -> Item a2
+ ContribFudgets: item :: Graphic a => a -> a -> Item a
- ContribFudgets: item' :: Graphic a1 => Keys -> a2 -> a1 -> Item a2
+ ContribFudgets: item' :: Graphic a => Keys -> a -> a -> Item a
- ContribFudgets: meterD :: RealFrac a1 => a1 -> FlexibleDrawing
+ ContribFudgets: meterD :: RealFrac p => p -> FlexibleDrawing
- ContribFudgets: meterF' :: RealFrac a1 => (GraphicsF FlexibleDrawing -> GraphicsF FlexibleDrawing) -> F a1 (InputMsg (Ratio Int))
+ ContribFudgets: meterF' :: RealFrac e => (GraphicsF FlexibleDrawing -> GraphicsF FlexibleDrawing) -> F e (InputMsg (Ratio Int))
- ContribFudgets: popup :: ([Char], Maybe a)
+ ContribFudgets: popup :: (String, Maybe a)
- ContribFudgets: radioGroupItem :: (Graphic a1, Eq b) => Transl b a2 -> [Item b] -> b -> a1 -> Item (MenuItem a2)
+ ContribFudgets: radioGroupItem :: (Graphic a, Eq a) => Transl a a -> [Item a] -> a -> a -> Item (MenuItem a)
- ContribFudgets: showReadFileShellF :: (Show a, Read a) => Maybe a -> [Char] -> F a (InputMsg a) -> F c d
+ ContribFudgets: showReadFileShellF :: (Show c, Read c) => Maybe c -> [Char] -> F c (InputMsg c) -> F c d
- ContribFudgets: showReadFileShellF' :: (Show a, Read a) => (ShellF -> ShellF) -> Maybe a -> [Char] -> F a (InputMsg a) -> F c d
+ ContribFudgets: showReadFileShellF' :: (Show c, Read c) => (ShellF -> ShellF) -> Maybe c -> [Char] -> F c (InputMsg c) -> F c d
- ContribFudgets: socketServerF :: Int -> (Socket -> Peer -> F a1 (SocketMsg a2)) -> F (Int, a1) (Int, ClientMsg a2)
+ ContribFudgets: socketServerF :: Port -> (Socket -> Peer -> F a (SocketMsg a)) -> F (Int, a) (Int, ClientMsg a)
- ContribFudgets: splitF' :: LayoutDir -> Double -> F a1 a2 -> F c b -> F (Either a1 c) (Either a2 b)
+ ContribFudgets: splitF' :: LayoutDir -> Alignment -> F a a -> F b b -> F (Either a b) (Either a b)
- ContribFudgets: subMenuItem :: (Graphic a1, Eq b) => Transl b a2 -> Menu b -> a1 -> Item (MenuItem a2)
+ ContribFudgets: subMenuItem :: (Graphic a, Eq b) => Transl b a -> Menu b -> a -> Item (MenuItem a)
- ContribFudgets: titleShellF :: [Char] -> F c d -> F (Either String c) d
+ ContribFudgets: titleShellF :: String -> F c d -> F (Either String c) d
- ContribFudgets: titleShellF' :: (ShellF -> ShellF) -> [Char] -> F c d -> F (Either String c) d
+ ContribFudgets: titleShellF' :: (ShellF -> ShellF) -> String -> F c d -> F (Either String c) d
- ContribFudgets: toggleItem :: Graphic a1 => Transl Bool a2 -> Bool -> a1 -> Item (MenuItem a2)
+ ContribFudgets: toggleItem :: Graphic a => Transl Bool a -> Bool -> a -> Item (MenuItem a)
- ContribFudgets: vSplitF :: F a1 a2 -> F c b -> F (Either a1 c) (Either a2 b)
+ ContribFudgets: vSplitF :: F a a -> F b b -> F (Either a b) (Either a b)
- ContribFudgets: vSplitF' :: Double -> F a1 a2 -> F c b -> F (Either a1 c) (Either a2 b)
+ ContribFudgets: vSplitF' :: Alignment -> F a a -> F b b -> F (Either a b) (Either a b)
- ContribFudgets: wmShellF :: [Char] -> F c d -> F (Either (Either String Bool) c) (Either () d)
+ ContribFudgets: wmShellF :: String -> F c d -> F (Either (Either String Bool) c) (Either () d)
- ContribFudgets: wmShellF' :: (ShellF -> ShellF) -> [Char] -> F c d -> F (Either (Either String Bool) c) (Either () d)
+ ContribFudgets: wmShellF' :: (ShellF -> ShellF) -> String -> F c d -> F (Either (Either String Bool) c) (Either () d)
- Fudgets: (>#==<) :: (F a1 f, Orientation) -> F e a1 -> F e f
+ Fudgets: (>#==<) :: (F d f, Orientation) -> F e d -> F e f
- Fudgets: asyncTransceiverF :: Socket -> F [Char] String
+ Fudgets: asyncTransceiverF :: Socket -> F String String
- Fudgets: asyncTransmitterF :: Socket -> F [Char] b
+ Fudgets: asyncTransmitterF :: Socket -> F String b
- Fudgets: containerGroupF :: Rect -> Rect -> Int -> Button -> [Modifiers] -> F c b -> F (Either (Rect, Rect) c) (Either Rect b)
+ Fudgets: containerGroupF :: Rect -> Rect -> Int -> Button -> ModState -> F c b -> F (Either (Rect, Rect) c) (Either Rect b)
- Fudgets: editorF' :: (EditorF -> EditorF) -> F EditCmd EditEvt
+ Fudgets: editorF' :: Customiser EditorF -> F EditCmd EditEvt
- Fudgets: getCurrentTime :: FudgetIO f => (UTCTime -> f b ho) -> f b ho
+ Fudgets: getCurrentTime :: FudgetIO f => (UTCTime -> f hi ho) -> f hi ho
- Fudgets: getLocalTime :: FudgetIO f => (CalendarTime -> f b ho) -> f b ho
+ Fudgets: getLocalTime :: FudgetIO f => (CalendarTime -> f hi ho) -> f hi ho
- Fudgets: getTime :: FudgetIO f => (ClockTime -> f b ho) -> f b ho
+ Fudgets: getTime :: FudgetIO f => (ClockTime -> f hi ho) -> f hi ho
- Fudgets: getZonedTime :: FudgetIO f => (ZonedTime -> f b ho) -> f b ho
+ Fudgets: getZonedTime :: FudgetIO f => (ZonedTime -> f hi ho) -> f hi ho
- Fudgets: inputEditorF' :: (EditorF -> EditorF) -> F String (InputMsg String)
+ Fudgets: inputEditorF' :: Customiser EditorF -> F String (InputMsg String)
- Fudgets: inputListSP :: Eq a => [a] -> SP (a, InputMsg b) (InputMsg [(a, b)])
+ Fudgets: inputListSP :: Eq p1 => [p1] -> SP (p1, InputMsg p2) (InputMsg [(p1, p2)])
- Fudgets: labAboveF :: Graphic g => g -> F c d -> F c d
+ Fudgets: labAboveF :: Graphic p => p -> F c d -> F c d
- Fudgets: labBelowF :: Graphic g => g -> F c d -> F c d
+ Fudgets: labBelowF :: Graphic p => p -> F c d -> F c d
- Fudgets: labLeftOfF :: Graphic g => g -> F c d -> F c d
+ Fudgets: labLeftOfF :: Graphic p => p -> F c d -> F c d
- Fudgets: labRightOfF :: Graphic g => g -> F c d -> F c d
+ Fudgets: labRightOfF :: Graphic p => p -> F c d -> F c d
- Fudgets: labelF :: Graphic g => g -> F a b
+ Fudgets: labelF :: Graphic a1 => a1 -> F a2 b
- Fudgets: labelF' :: Graphic g => Customiser (DisplayF g) -> g -> F a b
+ Fudgets: labelF' :: Graphic a1 => Customiser (DisplayF a1) -> a1 -> F a2 b
- Fudgets: loopLeftSP :: SP (Either a1 a2) (Either a1 b) -> SP a2 b
+ Fudgets: loopLeftSP :: SP (Either a b1) (Either a b2) -> SP b1 b2
- Fudgets: loopThroughRightSP :: SP (Either a1 a2) (Either a3 b) -> SP a3 a1 -> SP a2 b
+ Fudgets: loopThroughRightSP :: SP (Either a1 b1) (Either a2 b2) -> SP a2 a1 -> SP b1 b2
- Fudgets: oldFilePickF :: F String (InputMsg String)
+ Fudgets: oldFilePickF :: F FilePath (InputMsg String)
- Fudgets: openLSocketF :: FudgetIO f => Port -> (LSocket -> f b ho) -> f b ho
+ Fudgets: openLSocketF :: FudgetIO f => Port -> (LSocket -> f hi ho) -> f hi ho
- Fudgets: openSocketF :: FudgetIO f => Host -> Port -> (Socket -> f b ho) -> f b ho
+ Fudgets: openSocketF :: FudgetIO f => Host -> Port -> (Socket -> f hi ho) -> f hi ho
- Fudgets: plookup :: Foldable t => (a -> Bool) -> t (a, b) -> Maybe b
+ Fudgets: plookup :: Foldable t => (b1 -> Bool) -> t (b1, b2) -> Maybe b2
- Fudgets: posPopupShellF :: [Char] -> [WindowAttributes] -> F c a -> F (c, Maybe Point) (c, a)
+ Fudgets: posPopupShellF :: String -> [WindowAttributes] -> F c a -> F (c, Maybe Point) (c, a)
- Fudgets: pushButtonF :: [(ModState, KeySym)] -> F b1 b2 -> F b1 (Either b2 Click)
+ Fudgets: pushButtonF :: [(ModState, KeySym)] -> F a b -> F a (Either b Click)
- Fudgets: scrollShellF :: [Char] -> (Point, Point) -> F c d -> F c d
+ Fudgets: scrollShellF :: String -> (Point, Point) -> F c d -> F c d
- Fudgets: setBgColor :: (HasBgColorSpec xxx, Show a, ColorGen a) => a -> Customiser xxx
+ Fudgets: setBgColor :: (HasBgColorSpec xxx, Show p, ColorGen p) => p -> Customiser xxx
- Fudgets: setFgColor :: (HasFgColorSpec xxx, Show a, ColorGen a) => a -> Customiser xxx
+ Fudgets: setFgColor :: (HasFgColorSpec xxx, Show p, ColorGen p) => p -> Customiser xxx
- Fudgets: shellF :: [Char] -> F c d -> F c d
+ Fudgets: shellF :: String -> F c d -> F c d
- Fudgets: shellF' :: Customiser ShellF -> [Char] -> F c d -> F c d
+ Fudgets: shellF' :: Customiser ShellF -> String -> F c d -> F c d
- Fudgets: spyF :: (Show b, Show a2) => F a2 b -> F a2 b
+ Fudgets: spyF :: (Show b, Show a1) => F a1 b -> F a1 b
- Fudgets: stdinF :: F b String
+ Fudgets: stdinF :: F hi String
- Fudgets: stripEither :: Either p p -> p
+ Fudgets: stripEither :: Either a a -> a
- Fudgets: stripInputMsg :: InputMsg p -> p
+ Fudgets: stripInputMsg :: InputMsg a -> a
- Fudgets: tieLabelF :: Graphic g => Orientation -> Double -> g -> F c d -> F c d
+ Fudgets: tieLabelF :: Graphic p => Orientation -> Alignment -> p -> F c d -> F c d
- Fudgets: tstInp :: (t -> p) -> InputMsg t -> p
+ Fudgets: tstInp :: (t1 -> t2) -> InputMsg t1 -> t2
- Fudgets: version :: [Char]
+ Fudgets: version :: String
- HbcUtils: uncurry3 :: (t1 -> t2 -> t3 -> t4) -> (t1, t2, t3) -> t4
+ HbcUtils: uncurry3 :: (t -> t -> t -> t) -> (t, t, t) -> t
- HyperGraphicsF2: mapGfxCommandPath :: (t -> path) -> GfxCommand t gfx -> GfxCommand path gfx
+ HyperGraphicsF2: mapGfxCommandPath :: (a -> path) -> GfxCommand a gfx -> GfxCommand path gfx
- ReactionM: put :: a1 -> ReactionM a2 a1 ()
+ ReactionM: put :: o -> ReactionM s o ()
- ReactionM: react :: ReactionM a1 o a2 -> a1 -> (a1, [o])
+ ReactionM: react :: ReactionM a o a -> a -> (a, [o])

Files

ChangeLog.md view
@@ -1,5 +1,21 @@ # Release history for fudgets +## 0.18.4 --  2023-06-27++* ``Cla`` (Lennart Augustsson's calculator) is now included.++* Added support for binary I/O with lazy bytestrings to files and network+  sockets.++* Removed the last remnants of the ``PackedString`` type.++* Tested with 14 different versions of GHC, from 7.4.1 to 9.6.2.++* Fudgets turned 30 this month, can you believe it?+  [The first paper on Fudgets](https://www.altocumulus.org/Fudgets/fpca93-abstract.html)+  was presented at the *Conference on Functional Programming Languages and+  Computer Architecture*, Copenhagen, June 1993.+   ## 0.18.3.2 --  2022-08-04  * Simplified the installation on macOS by adding a helper script
Demos/SpaceInvaders/GUI.hs view
@@ -9,7 +9,7 @@            bmScale,spaceSize,spaceWidth,spaceHeight            ) where import Control.Applicative-import AllFudgets hiding (draw,wDraw,size,state,rect,put)+import AllFudgets hiding (draw,wDraw,state,rect,put) import ReactiveF import ReadPic import InvaderTypes
+ Examples/Cla.hs view
@@ -0,0 +1,51 @@+module Main(main) where+import Fudgets++font = if null args+       then "-adobe-times-bold-r-normal--34-*-*-*-*-*-*-*"+       else head args++--font = "-adobe-times-bold-r-normal--34-*-*-*-*-*-*-*"++myUntaggedListLF layout fs = snd >^=< listLF layout (number 0 (concat fs))++startstate = ([0::Integer], 10, False)++digit d = ["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"!!(fromInteger d)]+bconv b x = if x < b then digit x else bconv b (x`div`b) ++ digit (x`mod`b)+showstate (x:xs, b, _) = (if x < 0 then '-':bconv b (0-x) else bconv b x)++"    "++show b+bop f ([x], b, c) = bop f ([x,x], b, True)+bop f (x:y:xs, b, c) = (f y x:xs, b, True)+uop f (x:xs, b, c) = (f x:xs, b, True)+dig n (x:xs, b, c) = ((if c then n:x:xs else if n < b then x*b+n:xs else x:xs), b, False)++accumulator =+  let transform state op = let state' = op state+			   in (state',state')+  in putSP startstate $ mapAccumlSP transform startstate++disp = displayF' (setAlign aRight.setFont font)  >=^< showstate++buttons =+  let b = buttonF+  in let bf s f = (\x->f) >^=< b s+  in let bq s = quitF>==<b s++  in let buttons = [+	   [bq "Off", bf "Enter" (\(x:xs, b, c)->(x : x : xs, b, True)), bf "Clear" (\(_:xs, b, c)->(0:xs, b, False)), bf "BS" (\(x:xs, b, c)->((if c then x else x`div`b):xs, b, c))],+	   [bf "D" (dig 13),bf "E" (dig 14),bf "F" (dig 15),bf "mod" (bop (mod))],+	   [bf "A" (dig 10),bf "B" (dig 11),bf "C" (dig 12),bf "/" (bop (div))],+	   [bf "7" (dig 7), bf "8" (dig 8), bf "9" (dig 9), bf "*" (bop (*))],+	   [bf "4" (dig 4), bf "5" (dig 5), bf "6" (dig 6), bf "-" (bop (-))],+	   [bf "1" (dig 1), bf "2" (dig 2), bf "3" (dig 3), bf "+" (bop (+))],+	   [bf "0" (dig 0), bf "Chs" (uop (0-)), bf "Base" (\(x:xs, b, c)->(x:xs, (if x <= 36 && x > 1 then x else b), True)), bf "Pop" (\(x:xs, b, c)->(if null xs then ([x],b,c) else (xs,b,c))) ]]++  in let layout = matrixP 4+  in myUntaggedListLF layout buttons++counterF = (disp >=^^< accumulator, Above) >#==< buttons++main = fudlogue $ shellF "Calculator" counterF++--[] ++ ys = ys+--(x:xs) ++ ys = x:(xs++ys)
README.md view
@@ -41,6 +41,7 @@ - [Fudgets User's Guide](https://www.altocumulus.org/Fudgets/userguide.html).   Naming conventions and some other practical things. - [Fudget Library Reference Manual](https://www.altocumulus.org/Fudgets/Manual/). (Haddock did not exist back when Fudgets were created.)+- [Programming with Fudgets](https://www.altocumulus.org/Fudgets/springschool95-intro.html): Lecture Notes from the Spring School on Advanced Functional Programming in Båstad 1995. A comprehensive introduction. - [The FPCA-93 paper about Fudgets](https://www.altocumulus.org/Fudgets/fpca93-abstract.html),   the first publication describing Fudgets. - See the [Fudgets home page](https://www.altocumulus.org/Fudgets/) for more info.
fudgets.cabal view
@@ -1,6 +1,6 @@ Name: fudgets -- The version number also appears in hsrc/utils/FudVersion.hs-Version: 0.18.3.2+Version: 0.18.4 Cabal-Version: >=1.10 Synopsis: The Fudgets Library Homepage: https://www.altocumulus.org/Fudgets/@@ -24,7 +24,7 @@ Build-Type: Simple License: OtherLicense License-File: COPYRIGHT-Tested-With: GHC==7.4.1, GHC==7.6.3, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.3, GHC==8.8.2, GHC==8.10.2, GHC==8.10.7, GHC==9.0.2, GHC==9.2.4+Tested-With: GHC==7.4.1, GHC==7.6.3, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.5, GHC==8.8.4, GHC==8.10.2, GHC==8.10.7, GHC==9.0.2, GHC==9.2.7, GHC==9.4.4, GHC==9.6.2  Extra-Source-Files: README.md                     ChangeLog.md@@ -47,6 +47,11 @@   Manual:      True   Default:     False +Flag bytestring+  Description: Use bytestring for binary IO with ReadBinFile and WriteBinFile+  Manual:      True+  Default:     True+ Flag old-time   Description: Use the old-time package   Default:     True@@ -66,6 +71,9 @@                  containers, array, time,                  unix +  if flag(bytestring)+    Build-Depends: bytestring+   if flag(old-time)     Build-Depends: old-time @@ -88,6 +96,8 @@    Include-dirs: hsrc hsrc/ghc-dialogue hsrc/defaults +  if os(freebsd)+    ghc-options: -pgmP hsrc/fudcpp   if os(darwin)     Extra-lib-dirs: /opt/X11/lib      Include-dirs: /opt/X11/include@@ -296,7 +306,7 @@     OpenSocket     PQueue     P_IO_data-    PackedString+  --PackedString     ParF     ParK     ParSP@@ -440,6 +450,16 @@ Executable texteditor   hs-source-dirs: Examples   main-is: texteditor.hs+  Default-language: Haskell98+  build-depends: base, fudgets++  ghc-options: -fno-warn-tabs+  if impl(ghc>=7.0)+    ghc-options: -rtsopts++Executable Cla+  hs-source-dirs: Examples+  main-is: Cla.hs   Default-language: Haskell98   build-depends: base, fudgets 
hsrc/combinators/ListF.hs view
@@ -3,12 +3,12 @@ import CompSP(prepostMapSP) import CompSP(preMapSP) import CompOps((>^=<),(>=^^<))-import Direction+--import Direction import Fudget --import ListMap(lookupWithDefault) --import Message(Message(..)) --import NullF---import Path(Path(..))+import Path(turn,Direction(..)) import Spops import TreeF import Utils(number,pair)@@ -60,7 +60,7 @@  pathtab (Leaf (t, _)) = [(t, [])] pathtab (Branch l r) =-    map (apSnd (L :)) (pathtab l) ++ map (apSnd (R :)) (pathtab r)+    map (apSnd (turn L)) (pathtab l) ++ map (apSnd (turn R)) (pathtab r)  balancedTree xs =     case xs of
hsrc/combinators/Route.hs view
@@ -1,12 +1,11 @@ module Route(compTurnRight, compTurnLeft, compPath) where-import Direction import Message(Message(..))-import Path({-Path(..),-}path, turn)+import Path(turn,Direction(..)) -compPath (tag, ev) wrongaddr c =-    case path tag of-      (L, tag') -> c $ Left (Low (tag', ev))-      (R, tag') -> c $ Right (Low (tag', ev))+compPath (path, ev) wrongaddr c =+    case path of+      L:tag' -> c $ Left (Low (tag', ev))+      R:tag' -> c $ Right (Low (tag', ev))       _ -> wrongaddr  compTurnLeft  (tag, cmd) = Low (turn L tag, cmd)
hsrc/drawing/FlexibleDrawing.hs view
@@ -106,12 +106,12 @@     h2 = (by-ty) `div` 2     d = (h2 `div` 2) `min` (rx-lx) -triangleUp = flex' size (drawpoly . trianglePoints')-filledTriangleUp = flex' size (fillpoly . trianglePoints')-triangleDown = flex' size (drawpoly . vMirror trianglePoints')-filledTriangleDown = flex' size (fillpoly . vMirror trianglePoints')+triangleUp = flex' defaultTriangleSize (drawpoly . trianglePoints')+filledTriangleUp = flex' defaultTriangleSize (fillpoly . trianglePoints')+triangleDown = flex' defaultTriangleSize (drawpoly . vMirror trianglePoints')+filledTriangleDown= flex' defaultTriangleSize (fillpoly.vMirror trianglePoints') -size = Point 18 14+defaultTriangleSize = Point 18 14  drawpoly ps = [DrawLines CoordModeOrigin ps] fillpoly ps = [FillPolygon Convex CoordModeOrigin ps]
hsrc/drawing/Font.hs view
@@ -18,7 +18,7 @@ default(Int)  data CharStruct = CharStruct {char_lbearing, char_rbearing,-                              char_width, char_ascent, char_descent :: Int}+                              char_width, char_ascent, char_descent :: !Int} 		  deriving (Eq, Ord, Show, Read)  data FontDirection = FontLeftToRight | FontRightToLeft @@ -31,13 +31,13 @@ data FontStructF per_char =     FontStruct {font_id :: FontId,                 font_dir :: FontDirection,-                first_char, last_char :: Char,-                font_complete :: Bool, -- all chars exist-                default_char :: Char,+                first_char, last_char :: !Char,+                font_complete :: !Bool, -- all chars exist+                default_char :: !Char,                 font_prop :: [FontProp],-                max_bounds, min_bounds :: CharStruct,+                max_bounds, min_bounds :: !CharStruct,                 per_char :: Maybe per_char,-                font_ascent, font_descent :: Int+                font_ascent, font_descent :: !Int                   -- ^ logical extent above/below baseline for spacing                }     deriving (Eq, Ord, Show, Read)@@ -60,19 +60,23 @@  linespace fs = font_ascent fs + font_descent fs -char_struct default' fs c =-    case per_char fs of-      Nothing -> default' fs-      Just ca -> --ca ! c-                 ca ! (if inRange (font_range fs) c   -- or: bounds ca-                       then -- debugging-		            if inRange (bounds ca) c-			    then c-			    else ctrace "fontrange" (font_range fs,bounds ca,c) (default_char fs)-		       else let c' = default_char fs-		            in if inRange (bounds ca) c'-			       then c'-			       else ctrace "fontrange" (font_range fs,"default char",c') ' ')+char_struct default' fs =+  case per_char fs of+    Nothing -> const (default' fs)+    Just ca -> char_struct'+      where+        r = font_range fs+        b = bounds ca+        char_struct' c =+          ca ! (if inRange r c   -- or: bounds ca+                then -- debugging+                     if inRange b c+                     then c+                     else ctrace "fontrange" (r,b,c) (default_char fs)+                else let c' = default_char fs+                     in if inRange b c'+                        then c'+                        else ctrace "fontrange" (r,"default char",c') ' ')  lbearing fs = char_lbearing . char_struct min_bounds fs rbearing fs = char_rbearing . char_struct max_bounds fs
hsrc/drawing/Graphic.hs view
@@ -1,11 +1,11 @@ module Graphic(module Graphic,MeasuredGraphics,emptyMG,emptyMG',GCtx,Cont(..)) where-import Fudget+--import Fudget import FudgetIO import EitherUtils(Cont(..)) import Cont(conts)-import MeasuredGraphics(MeasuredGraphics(..),measureString,measurePackedString,emptyMG,emptyMG')+import MeasuredGraphics(MeasuredGraphics(..),measureString,emptyMG,emptyMG') --,measurePackedString import GCtx(GCtx)-import PackedString(PackedString)+--import PackedString(PackedString) import Geometry() -- instance Num Point  class Graphic a where@@ -40,7 +40,7 @@ instance Graphic Bool         where measureGraphicK = measureText instance Graphic Float        where measureGraphicK = measureText instance Graphic Double       where measureGraphicK = measureText-instance Graphic PackedString where measureGraphicK = measurePackedString+--instance Graphic PackedString where measureGraphicK = measurePackedString  instance (Graphic a,Graphic b) => Graphic (Either a b) where   measureGraphicK = either measureGraphicK measureGraphicK
hsrc/fudcpp view
@@ -1,4 +1,4 @@-#! /bin/bash+#! /usr/bin/env bash  # This script is used on macOS to workaround two problems: #@@ -12,6 +12,7 @@  cpp=cpp case `uname` in+    FreeBSD) cpp=cpp12 ;;     Darwin) 	# Since gcc is an alias for clang on macOS, gcc proper is only 	# available in the path with a version suffix, so we need to
hsrc/ghc-dialogue/AsyncInput.hs view
@@ -32,7 +32,7 @@ import Data.IORef(newIORef,readIORef,writeIORef,IORef) import System.Posix.DynamicLinker as DL -import PackedString(unpackPS,lengthPS{-,packCBytesST,psToByteArray-})+--import PackedString(unpackPS,lengthPS{-,packCBytesST,psToByteArray-})  default (Int) @@ -105,6 +105,14 @@ 			 do got <- tryP "read" (>=0) $ cread fd buf (fromIntegral bufsize) 			    str <- unmarshallString' (CString buf) (fromIntegral got) 			    return (d,SocketRead str)+#ifdef VERSION_bytestring+		       BinSocketDe _ ->+		         let bufsize = 2000+			 in alloca bufsize $ \ buf ->+			 do got <- tryP "read" (>=0) $ cread fd buf (fromIntegral bufsize)+			    bs <- unmarshallByteString' (CString buf) (fromIntegral got)+			    return (d,SocketReadBin bs)+#endif 		       LSocketDe _ -> 		         allocaInt $ \ addrlen -> 			 do addr <- newsockAddr@@ -211,8 +219,8 @@       SocketResponse . LSocket . LSo <$> getfilep s "r+"    WriteSocket s str -> writeSocket s str    WriteSocketPS s str ->-      do writeSocket s (unpackPS str) -- grr!-         returnS (Wrote (lengthPS str)) -- grr!+      do writeSocket s str -- grr!+         returnS (Wrote (length str)) -- grr! {-      do       fd <- fileno s@@ -331,6 +339,7 @@  where descriptor d = case d of 	   LSocketDe (LSo s) -> withd $ get_fileno s 	   SocketDe (So s) ->  withd $ get_fileno s+	   BinSocketDe (So s) ->  withd $ get_fileno s 	   OutputSocketDe (So s) ->  withd $ get_fileno s 	   DisplayDe ({-Display-} d) -> withd $  --	         _casm_ ``%r=((Display*)%0)->fd;'' d
hsrc/ghc-dialogue/DialogueIO.hs view
@@ -1,4 +1,5 @@--- | Haskell 1.2 Dialogue I/O+-- | Haskell 1.2 Dialogue I/O,+-- extended for Fudgets with Xlib calls, network sockets, etc module DialogueIO(Request(..), Response(..), IOError(..)        , Dialogue(..), SigAct(..) , dialogueToIO        --, module _LibDialogue@@ -11,7 +12,8 @@ -- | Included just to illustrate that it is possible to convert a Dialogue -- IO function to a monadic IO function. The implementation relies on -- 'getChanContents' to construct the lazy list of responses needed by--- the dialogue IO function.+-- the dialogue IO function. (See also the functions 'doRequest' and+-- 'Fudgets.fudlogue'.) dialogueToIO :: Dialogue -> IO () dialogueToIO f =   do st <- initXCall
hsrc/ghc-dialogue/DoRequest.hs view
@@ -11,6 +11,9 @@ import qualified IOUtil as IO import System.IO(openBinaryFile,withBinaryFile,IOMode(..),hPutStr,hGetContents) import System.Directory+#ifdef VERSION_bytestring+import qualified Data.ByteString.Lazy as BS+#endif #ifdef VERSION_old_time import System.Time(getClockTime,toCalendarTime) #endif@@ -49,6 +52,13 @@     ReadBinaryFile filename      -> rdCatch (readBinaryFile filename)     WriteBinaryFile filename contents ->                                     wrCatch (writeBinaryFile filename contents)+#ifdef VERSION_bytestring+    ReadBinFile filename         -> rdCatch' Bn (BS.readFile filename)+    WriteBinFile filename contents ->+                                    wrCatch (BS.writeFile filename contents)+    AppendBinFile filename contents ->+                                    wrCatch (BS.appendFile filename contents)+#endif     AppendFile filename contents -> wrCatch (appendFile filename contents)     StatusFile filename          -> catchIo SearchError (statusFile filename)       where
hsrc/ghc-dialogue/DoXCommand.hs view
@@ -23,7 +23,7 @@  import System.IO(hPutStr,hPutStrLn,stderr) -- for error reporting -import PackedString(lengthPS,unpackPS)+--import PackedString(lengthPS,unpackPS) --import Word(Word32) import Data.Bits @@ -188,10 +188,10 @@             where f = fromIntegral 	  DrawPoint (Point x y) -> xDrawPoint d drw gc x y 	  CreatePutImage rect format pixels -> createPutImage drw gc rect format pixels-	  DrawImageStringPS (Point x y) s ->-	    xDrawImageString d drw gc x y (unpackPS s) (lengthPS s) -- !!-	  DrawStringPS (Point x y) s ->-	    xDrawString d drw gc x y (unpackPS s) (lengthPS s) -- !!+--	  DrawImageStringPS (Point x y) s ->+--	    xDrawImageString d drw gc x y (unpackPS s) (lengthPS s) -- !!+--	  DrawStringPS (Point x y) s ->+--	    xDrawString d drw gc x y (unpackPS s) (lengthPS s) -- !!           _ -> hPutStr stderr (notImplemented cmd)         createPutImage drw gc rect@(Rect (Point x y) (Point w h)) (ImageFormat format) pixels =
hsrc/ghc-dialogue/DoXRequest.hs view
@@ -218,14 +218,14 @@    QueryTextExtents16 fid s ->      do let n = length s 	cs <- marshallString16' s n-        ints@[dir,ascent,descent,overall] <- newLongs 4+        ints@[dir,ascent,descent] <- newInt32s 3         overall <- newPtr 	xQueryTextExtents16 display fid cs n dir ascent descent overall-        [asc,desc] <- mapM readLong [ascent,descent]+        [asc,desc] <- mapM readInt32 [ascent,descent]         ov <- mkCharStruct overall         freePtrs ints 	freePtr overall-        return $ TextExtents16Queried asc desc ov+        return $ TextExtents16Queried (fromIntegral asc) (fromIntegral desc) ov    ListFontsWithInfo pattern maxnames ->      GotFontListWithInfo <$> listFontsWithInfo d pattern maxnames    DbeQueryExtension ->
hsrc/ghc-dialogue/Marshall.hs view
@@ -1,6 +1,11 @@+{-# LANGUAGE CPP #-} module Marshall where import MyForeign import Control.Monad(zipWithM_)+#ifdef VERSION_bytestring+import qualified Foreign as F+import qualified Data.ByteString as BS+#endif --import Ap  class HasAddr a where@@ -151,7 +156,11 @@       if i<n       then (:) <$> peekElemOff addr i <*> get (i+1)       else return []-     ++#ifdef VERSION_bytestring+unmarshallByteString' (CString (Addr addr)) n =+    BS.packCStringLen (F.castPtr addr,n)+#endif  --- 
hsrc/ghc-dialogue/P_IO_data.hs view
@@ -5,6 +5,9 @@ import ShowFun() import Prelude hiding (IOError) import System.Directory(XdgDirectory)+#ifdef VERSION_bytestring+import qualified Data.ByteString.Lazy as BS+#endif #ifdef VERSION_old_time import System.Time(ClockTime,CalendarTime) #endif@@ -160,7 +163,11 @@ 		deriving (Show,Read)  +#ifdef VERSION_bytestring+type Bin = BS.ByteString+#else type Bin = Unused+#endif type Dialogue = [Response] -> [Request] -- not useful anymore --type _CUnion = Unused type File = Unused
hsrc/ghc-dialogue/Xlib.hs view
@@ -93,7 +93,7 @@ Xlib(FreeFontNames,CStringArray->IO()) PReq(ListFontsWithInfo,CString->Int->CInt32->CCXFontStruct,CStringArray,String->Int->CInt32->CCXFontStruct,CStringArray) Xlib(FreeFontInfo,CStringArray->CXFontStructArray->Int32->IO ())-Cmd(QueryTextExtents16,FontId->CString16->Int->CLong->CLong->CLong->CXCharStruct)+Cmd(QueryTextExtents16,FontId->CString16->Int->CInt32->CInt32->CInt32->CXCharStruct)  Req(CreateFontCursor,Int,CursorId) Req(CreatePixmap,DrawableId->Unsigned->Unsigned->Unsigned,PixmapId)
− hsrc/ghc/PackedString.hs
@@ -1,22 +0,0 @@--- | Fake PackedString type-module PackedString{-(module PS)-} where---import Data.PackedString as PS--newtype PackedString = PS String deriving (Eq,Ord)--instance Show PackedString where-  showsPrec n (PS s) r = s++r--instance Read PackedString where-  readsPrec n s0 = [(PS s,r)|(s,r)<-readsPrec n s0]--packString = PS-unpackPS (PS s) = s--nullPS (PS s) = null s-lengthPS (PS s) = length s--appendPS (PS s1) (PS s2) = PS (s1++s2)-mapPS f (PS s) = PS (map f s)-nilPS = PS ""-reversePS (PS s) = PS (reverse s)
hsrc/internals/MeasuredGraphics.hs view
@@ -1,4 +1,4 @@-module MeasuredGraphics(DPath,up,MeasuredGraphics(..),compileMG,emptyMG,emptyMG',measureString,measureImageString,measurePackedString) where+module MeasuredGraphics(DPath,up,MeasuredGraphics(..),compileMG,emptyMG,emptyMG',measureString,measureImageString{-,measurePackedString-}) where import Geometry import LayoutRequest --import Placers2(overlayP)@@ -10,8 +10,8 @@ import Rects(boundingRect) import CompiledGraphics import GCtx(GCtx(..))-import GCAttrs(FontData(..))-import PackedString(unpackPS)+import GCAttrs(FontData(..),fontdata2struct)+--import PackedString(unpackPS) import Utils(lunconcat) --import CmdLineEnv(argFlag) import Debug.Trace(trace)@@ -98,10 +98,8 @@ measureString' draw8 draw16 s gctx@(GC _ fd) k =     measureString'' id draw s gctx k   where-    draw =-      case fd of-        FS fs | snd (font_range fs) <= '\xff' -> draw8-	_ -> draw16+    fs = fontdata2struct fd id+    draw = if snd (font_range fs) <= '\xff' then draw8 else draw16  measureString s = measureString' DrawString DrawString16 s measureImageString s = measureString' DrawImageString DrawImageString16 s@@ -113,7 +111,7 @@   else measureString' id DrawString -} -measurePackedString ps = measureString'' unpackPS DrawStringPS ps+--measurePackedString ps = measureString'' unpackPS DrawStringPS ps   -- map2' is a lazier version of map2 (aka zipWith)
hsrc/internals/Table.hs view
@@ -1,18 +1,19 @@ module Table(table, mapTable, listTable, tableUpdate, tableLookup, emptyTable,              Table) where import Tree234+import HbcUtils(apSnd) -newtype Table a = T (Tree234 a) deriving (Eq, Ord,Show)+newtype Table k v = T (Tree234 (k,v)) deriving (Eq, Ord,Show)  emptyTable = T initTree234 -tableLookup n j x (T t) = treeSearch n j (keyCmp x) t+tableLookup n j x (T t) = treeSearch n j (keyCmp (x,())) t  tableUpdate x (T t) = T (update' x t)  update' x = treeAdd const keyCmp x -mapTable f (T t) = T (treeMap f t)+mapTable f (T t) = T (fmap (apSnd f) t)  listTable (T t) = treeList t 
hsrc/internals/Tables.hs view
@@ -1,7 +1,7 @@ module Tables(PathTable(..), WidTable(..), updatePath, lookupPath, wid2path0,               pruneWid, updateWid, subWids, lookupWid, path2wid0, PathTree, 	      moveWids,movePaths, prunePath) where-import Direction+--import Direction --import Fudget import Path import Table@@ -76,24 +76,25 @@ nowid = noWindow  --------type PathTable = Table (WindowId, Path)+type PathTable = Table WindowId Path  nopath = here -- error "window not associated with a path"  wid2path0 = emptyTable  -- This part should be replaced with something more efficient!!-lookupPath wid2path wid =-    tableLookup nopath snd (wid, nopath) wid2path+lookupPath wid2path wid = tableLookup nopath snd wid wid2path  -- normal code updatePath wid2path wid path' = tableUpdate (wid, path') wid2path -movePaths wid2path opath npath = mapTable move wid2path where-  move (wid,path) = (wid,repath opath path) where-     repath [] rest = absPath npath rest-     repath (x:xs) (y:ys) | x == y = repath xs ys-     repath _ _ = path+movePaths wid2path opath npath = mapTable move wid2path+  where+    move path = repath opath path+      where+        repath [] rest = absPath npath rest+        repath (x:xs) (y:ys) | x == y = repath xs ys+        repath _ _ = path  -- should be implemented in Tree234 prunePath wid2path w = table $ filter ((/=w).fst) $ listTable wid2path
hsrc/internals/Tables2.hs view
@@ -1,11 +1,11 @@ module Tables2(DTable(..), dtable0, lookupDe, listDe, updateDe) where import Utils(pair)-import Direction() -- instances-import Path(here,Path(..))+--import Direction() -- instances, for hbc+import Path(Path(..)) import Sockets(Descriptor) import Table -type DTable = Table (Descriptor, Path)+type DTable = Table Descriptor Path  updateDe :: Path -> [Descriptor] -> DTable -> DTable updateDe path' ds dtable =@@ -17,7 +17,7 @@  lookupDe :: DTable -> Descriptor -> Path lookupDe dtable de =-    tableLookup (error ("Descriptor without path: "++show de)) snd (de, here) dtable+    tableLookup (error ("Descriptor without path: "++show de)) snd de dtable  dtable0 :: DTable dtable0 = table []
hsrc/internals/Tree234.hs view
@@ -1,5 +1,6 @@-module Tree234(treeMap, treeCombine, treeRebuild, treeFromList, treeMapList,-               treeList, treeUpdate, treeSearch, treeAdd, initTree234, Tree234) where+{-# LANGUAGE DeriveFunctor #-}+module Tree234(treeFromList, --treeMap,+               treeList, treeSearch, treeAdd, initTree234, Tree234) where  data Tree234 a = Leaf |                  Leaf2 a |@@ -8,7 +9,7 @@                  Node2 a (Tree234 a) (Tree234 a) |                  Node3 a a (Tree234 a) (Tree234 a) (Tree234 a) |                  Node4 a a a (Tree234 a) (Tree234 a) (Tree234 a) (Tree234 a) -                 deriving (Eq, Ord,Show)+                 deriving (Eq, Ord,Show, Functor)  initTree234 = Leaf @@ -41,7 +42,7 @@          (treeSearch fail cont p t3)          (cont a3)          (treeSearch fail cont p t4))-+{- treeUpdateFailed = error "treeUpdate couldn't find the node"  treeUpdate update p Leaf = Leaf@@ -81,7 +82,7 @@          (Node4 a1 a2 a3 t1 t2 (treeUpdate update p t3) t4)          (Node4 a1 a2 (update a3) t1 t2 t3 t4)          (Node4 a1 a2 a3 t1 t2 t3 (treeUpdate update p t4)))-+-} treeMapList f Leaf = [] treeMapList f (Leaf2 a1) = f a1 treeMapList f (Leaf3 a1 a2) = f a1 ++ f a2@@ -96,7 +97,7 @@     f a1 ++     treeMapList f t2 ++     f a2 ++ treeMapList f t3 ++ f a3 ++ treeMapList f t4-+{- treeMap f Leaf = Leaf treeMap f (Leaf2 a1) = Leaf2 (f a1) treeMap f (Leaf3 a1 a2) = Leaf3 (f a1) (f a2)@@ -113,18 +114,18 @@           (treeMap f t2)           (treeMap f t3)           (treeMap f t4)-+-} treeFromList comb cmp l = treeAddList comb cmp l Leaf  treeAddList comb cmp [] t = t treeAddList comb cmp (x : xs) t =     treeAddList comb cmp xs (treeAdd comb cmp x t)-+{- treeRebuild comb cmp t = treeFromList comb cmp (treeMapList (: []) t)  treeCombine comb cmp t1 t2 =     treeAddList comb cmp (treeMapList (: []) t2) t1-+-} treeAdd' comb cmp a keep split Leaf = keep (Leaf2 a) treeAdd' comb cmp a keep split (Leaf2 a1) =     keep (cmp a a1 (Leaf3 a a1) (Leaf2 (comb a a1)) (Leaf3 a1 a))
hsrc/io/AsyncTransmitter.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE CPP #-} module AsyncTransmitter(asyncTransmitterF,asyncTransmitterF',closerF) where import Sockets import Srequest@@ -10,7 +9,7 @@ import CompOps((>==<)) import IoF(ioF) import DialogueIO hiding (IOError)-import qualified PackedString as PS+--import qualified PackedString as PS import Queue(QUEUE,empty,enter,qremove)  {- asyncTransmitterF has two states:@@ -84,7 +83,7 @@ getMsg l h = getK $ message l h  data Buffer = Buf String (QUEUE String)-data GetBuf = More PS.PackedString Buffer | Empty | EoS+data GetBuf = More String Buffer | Empty | EoS  --buf0 = Buf "" empty buf1 str = Buf str empty -- pre: str/=""@@ -105,13 +104,7 @@      getbuf'' s q =       case splitAt n s of-        (s1,s2) -> More (PS.packString s1) (Buf s2 q)+        (s1,s2) -> More s1 (Buf s2 q)   initblocksize = 512 :: Int--#if defined(__GLASGOW_HASKELL__) || defined(__PFE__)-nullPS = PS.nullPS-#else-nullPS = PS.null-#endif
hsrc/types/Direction.hs view
@@ -1,3 +1,3 @@-module Direction(Direction(..)) where+module Direction where  data Direction = L | R | Dno Int  deriving (Eq, Ord, Read, Show)
hsrc/types/Drawcmd.hs view
@@ -21,8 +21,8 @@       CopyPlane d r p n -> CopyPlane d r (move v p) n       DrawPoint p -> DrawPoint (move v p)       CreatePutImage r fmt pxls -> CreatePutImage (move v r) fmt pxls-      DrawImageStringPS p s -> DrawImageStringPS (move v p) s-      DrawStringPS p s -> DrawStringPS (move v p) s+--    DrawImageStringPS p s -> DrawImageStringPS (move v p) s+--    DrawStringPS p s -> DrawStringPS (move v p) s       DrawImageString16 p s -> DrawImageString16 (move v p) s       DrawString16 p s -> DrawString16 (move v p) s 
hsrc/types/Fudget.hs view
@@ -7,8 +7,7 @@ --import Event(XEvent) import FRequest(FRequest,FResponse) import Message(Message(..))-import Direction(Direction)-import Path(Path(..))+import Path(Path(..),Direction) import SP(SP)  type TEvent   = (Path, FResponse)
hsrc/types/Path.hs view
@@ -1,4 +1,5 @@-module Path(showPath, subPath, absPath, path, turn, here, Path(..)) where+module Path(showPath, subPath, absPath, path, turn, here,+            Path(..), Direction(..)) where import Direction import Utils(lhead) 
hsrc/utils/FudVersion.hs view
@@ -1,7 +1,8 @@ module FudVersion where -version = version_0_18_3_2+version = version_0_18_4 -version_0_18_3_2 = "version 0.18.3.2" -- only for documentation, use "version" instead+version_0_18_4 = "version 0.18.4"+-- ^ only for documentation, use 'version' instead  -- The version number should be increased immediately after a public release.
hsrc/xtypes/Command.hs view
@@ -1,6 +1,6 @@ module Command(module Command,DrawCommand,Drawable(..)) where import Event(XEvent)-import Direction() -- for hbc+--import Direction() -- for hbc import Path(Path(..)) import Geometry --import LayoutRequest(LayoutMessage(..))
hsrc/xtypes/DrawInPixmap.hs view
@@ -9,8 +9,8 @@ pmDrawString pm gc p s = draw (Pixmap pm) gc (DrawString p s) pmDrawImageString16 pm gc p s = draw (Pixmap pm) gc (DrawImageString16 p s) pmDrawString16 pm gc p s = draw (Pixmap pm) gc (DrawString16 p s)-pmDrawImageStringPS pm gc p s = draw (Pixmap pm) gc (DrawImageStringPS p s)-pmDrawStringPS pm gc p s = draw (Pixmap pm) gc (DrawStringPS p s)+--pmDrawImageStringPS pm gc p s = draw (Pixmap pm) gc (DrawImageStringPS p s)+--pmDrawStringPS pm gc p s = draw (Pixmap pm) gc (DrawStringPS p s) pmDrawRectangle pm gc r = draw (Pixmap pm) gc (DrawRectangle r) pmFillRectangle pm gc r = draw (Pixmap pm) gc (FillRectangle r) pmFillPolygon pm gc shape mode ps =
hsrc/xtypes/DrawInWindow.hs view
@@ -9,8 +9,8 @@ wDrawString gc p s = draw MyWindow gc (DrawString p s) wDrawImageString16 gc p s = draw MyWindow gc (DrawImageString16 p s) wDrawString16 gc p s = draw MyWindow gc (DrawString16 p s)-wDrawImageStringPS gc p s = draw MyWindow gc (DrawImageStringPS p s)-wDrawStringPS gc p s = draw MyWindow gc (DrawStringPS p s)+--wDrawImageStringPS gc p s = draw MyWindow gc (DrawImageStringPS p s)+--wDrawStringPS gc p s = draw MyWindow gc (DrawStringPS p s) wDrawRectangle gc r = draw MyWindow gc (DrawRectangle r) wFillRectangle gc r = draw MyWindow gc (FillRectangle r) wFillPolygon gc shape mode ps = draw MyWindow gc (FillPolygon shape mode ps)
hsrc/xtypes/DrawTypes.hs view
@@ -1,6 +1,6 @@ module DrawTypes where import Geometry(Point,Rect,Line)-import PackedString(PackedString)+--import PackedString(PackedString) import Xtypes(Pixel,PixmapId,ImageFormat,DbeBackBufferId)  data DrawCommand@@ -18,8 +18,8 @@   | DrawPoint Point   | CreatePutImage Rect ImageFormat [Pixel]   ---  | DrawImageStringPS Point PackedString-  | DrawStringPS Point PackedString+---  | DrawImageStringPS Point PackedString+---  | DrawStringPS Point PackedString   --   | DrawLines CoordMode [Point]   | DrawImageString16 Point String
hsrc/xtypes/Sockets.hs view
@@ -1,9 +1,13 @@+{-# LANGUAGE CPP #-} module Sockets(DLValue,module Sockets) where import Event(XEvent) import Xtypes(WindowId,Display)-import PackedString(PackedString)+--import PackedString(PackedString) import DLValue import System.Posix.DynamicLinker(DL)+#ifdef VERSION_bytestring+import Data.ByteString(ByteString)+#endif  -- NOTE: Matching definitions for the C world appear in xlib/sockets.h -------- @@ -23,7 +27,7 @@                    | DLSym DLHandle String           -- -> SR DLValue 		   | OpenFileAsSocket String String  -- -> SR Socket 		                   -- name,  mode  (as in fopen(name,mode))-		   | WriteSocketPS Socket PackedString -- -> SR Wrote+		   | WriteSocketPS Socket String     -- -> SR Wrote                    | GetStdoutSocket                 -- -> SR Socket                       deriving (Show,Read) @@ -50,6 +54,7 @@ data Descriptor   = LSocketDe LSocket   | SocketDe Socket+  | BinSocketDe Socket   | OutputSocketDe Socket   | TimerDe Timer   | DisplayDe Display @@ -58,6 +63,9 @@ data AEvent   = SocketAccepted Socket Peer   | SocketRead String+#ifdef VERSION_bytestring+  | SocketReadBin ByteString+#endif   | SocketWritable   | TimerAlarm   | XEvent (WindowId, XEvent)