u      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t  Safe-Infereduvwxyzuvwxyzuvwxyzportable provisional Safe-Infered++The size of some glyph(s). Note that there's a difference D between the logical size, which may include some blank pixels, and  the actual bitmap. The  XRenderColor* from the XRender library. Note that the = colour channels are only interpreted as 16-bit numbers when  actually used.  An Xft font. An Xft drawable. An Xft colour. AA central staging point for Xft object creation. All Xft object ( creation functions take as argument an  value that keeps C track of lifetime information. You are required to manually free  the  via  when you are done with it.  Create an 0 whose objects will be used on the given screen < and display. As Xlib is not re-entrant, a synchronisation  mechanism must be used, so the  includes actions for > obtaining and releasing atomic access to the display via two { E actions. These will be executed before and after objects allocated < via the manager are released. It is recommended to use an  ( to implement a mutex for synchronising C the access, but if you are absolutely certain that there will not C be any concurrent attempts to access the display, the actions can  merely be  return (). =Free the manager and reclaim any objects associated with it.  After an 2 has been freed, it is invalid to use any objects D created through it. The lock must currently be held by the thread  calling ), and it will be repeatedly released and A reacquired throughout deallocating any remaining objects in the A manager. When the command returns, the lock will once again be  held. 0The core X11 colour contained in an Xft colour. ACreate a new Xft colour based on a name. The name may be either ! a human-readable colour such as red, white or  darkslategray D (all core X colour names are supported) or a hexidecimal name such  as #A9E2AF*. Names are not case-sensitive. Returns | if / the given name is not recognised as a colour. As 0, but instead of a name, an XRender color value  is used. +Free a colour that has been allocated with  or . As 0, but automatically freed through the given Xft $ manager when no longer accessible. As 0, but automatically freed through the given Xft $ manager when no longer accessible. "The display for the Xft drawable. !#The colormap for the Xft drawable. "!The visual for the Xft drawable. #.The X11 drawable underlying the Xft drawable. $:Create a new Xft drawable on the given display, using the  provided } to draw on. Will return | if the  call to  XftDrawCreate) fails, which it will usually only do if " memory cannot be allocated. The  has to be manually freed  with ' once you are done with it. % Behaves as $, except that it uses a ~ of color  depth 1 instead of a }. & Behaves as $, except that it uses a ~ of the given depth  instead of a }. 'Free a  created with $. Do not free s  created with )#, these are automatically managed. (5Change the X11 drawable underlying the Xft drawable. )As $/, but automatically freed when no longer used. *As %/, but automatically freed when no longer used. +As %/, but automatically freed when no longer used. ,>The ascent (vertical distance upwards from the baseline) of a  character in the font. -AThe descent (vertical distance downwards from the baseline) of a  character in the font. .4The ascent plus descent of a character in the font. /:The greatest horizontal width of a character in the font. 0newFontName dpy scr s, where s is a Fontconfig pattern " string, finds the best match for s and returns a font that can be > used to draw on the given screen. This function very rarely  returns |0, and seems to return some default font even if 1 you feed it utter garbage (or an empty string). 1As 0., except that the name should be an X Logical ; Font Description (the usual fourteen elements produced by  xfontsel). 2Close the given Xft font. 3As 0/, but automatically freed when no longer used. 4As  newFontXfld/, but automatically freed when no longer used. 5BLock the file underlying the Xft font. I am not certain when you 9 would need this. The return value is supposed to be an FT_TYPE ; from Freetype, but that binding has not been written yet. 6Unlock a face locked by  lockFontFace. 7Note that the 'glyphWidth'/'glyphHeight' fields are the number of @ pixels you should advance after drawing a string of this size. 8Shortcut for calling 7 and picking out the    field of the . 9Shortcut for calling 7 and picking out the    field of the . :ADraw a sequence of glyphs on the given drawable in the specified A colour and font. Drawing begins at the baseline of the string. ;@Draw a string on the given drawable in the specified colour and 6 font. Drawing begins at the baseline of the string. <drawRect d c x y w h draws a solid rectangle on d with colour  c , with its upper left corner at (x,y), width w and height  h. ; Executed before deallocations. Executed after deallocations.  !"#$%&'()*+,-./0123456789:;<9  !"#$%&'()*+,-./0123456789:;<9 !"#($%&')*+,-./0123456789;:<  -   !"#$%&'()*+,-./0123456789:;<portablestable Safe-Infered =Short-hand for  >Short-hand for  ?Short-hand for 'liftIO . hPutStrLn stderr' @Short-hand for ' map toUpper' AShort-hand for ' map toLower' BConversion scheme as in http:en.wikipedia.orgwikiHSV_color_space C6Prepend and append first argument to second argument. D+Put double quotes around the given string. E-Bound a value by minimum and maximum values. FThe F( function behaves like a combination of  and  foldlM;; it applies a monadic function to each element of a list, E passing an accumulating parameter from left to right, and returning ? a final value of this accumulator together with the new list. GLike when#, but with two branches. A lifted if. =>?@ABCDEFG =>?@ABCDEFG =>?@ABCDEFG =>?@ABCDEFG Safe-InferedHAParse a key-value string wrapper constructed via the permutation  parser combinators from  and the parsers value  and values. Ivalue k' is a parser for the single-valued key k. Jvalues k% is a parser for the list-valued key k. At least a  single value is required. HIJHIJHIJHIJportable provisional Safe-InferedDK<A complete Sindre program. Note that this is intentionally D defined such that some invalid programs, like those with duplicate 4 definitions can be represented - the compiler (see  Sindre.Compiler() should detect and handle such errors. RThe contents of the BEGIN block. SBThe arguments passed to the Sindre program from the command line. TA command line argument. U@A Sindre GUI is a recursive tree, with each node representing a 7 single widget and consisting of the following fields. WName of the widget, if any. XClass of the widget. Y$The arguments passed to the widget. Z Children of the widget, if any. [Reaction to an event. \Execute these statements. ]>A function consists of lexically bound parameters and a body. _9A description of an event used to indicate how to handle  different events. `SourcedPattern src ev vars matches if src  matches the event source (see f) an ev  matches the event name. vars should be bound to ) the values in the payload of the event. dMatch if either pattern  matches. eMatch if the event is a chord. f@Description of sets of sources, values of this type can be used  to pattern-match  EventSources. gFor GenericSource cn k fk, the source must be  of class cn. If fk is Just fk' , the source  must also be the field named fk'. The variable  named k) should be bound to the actual object if  this pattern matches. hFor NamedSource k fk, the source must be the  object named k. If fk is Just fk' , the source  must also be the field named fk'. i@The origin of an event. This is used when determining where to  handle it. j#The source is something within the  bowels of the active backend, # probably from the external world. k The source is the given object. lFieldSrc obj f designates that the source of  the event is the property f of obj m&Something that happened in the world. oThe name of the event. pThe payload of the event. qWhere it's from. s"The syntax of Sindre expressions. !The syntax of Sindre statements. /Wrap a value with source position information. 8A position in a source file, consisting of a file name, 9 one-indexed line number, and one-indexed column number. 9Dynamically typed run-time value in the Sindre language. @The type of names (such as variables and classes) in the syntax  tree. "High-level reference to a widget. AHigh-level reference to an object, containing its class and name D (if any) as well. For non-widgets, the object name is the same as  the object class. "Low-level reference to an object. ;A combination of a set of modifier keys and a primary key, 2 representing a complete piece of keyboard input. @Either a key corresponding to a visible character, or a control ( key not associated with any character. #Name of the control key, using X11  key names (for example  BackSpace or  Return). +Unicode character associated with the key. @A keyboard modifier key. The precise meaning (and location) of 6 these is somewhat platform-dependent. Note that the Shift @ modifier should not be passed along if the associated key is a  CharKey, as Shift! will already have been handled. ?Instruction on how to align a smaller interval within a larger  interval. *Align towards the center of the interval. !Align towards positive infinity. !Align towards negative infinity. AExternally-imposed optional minimum and maximum values for width  and height. /The amount of space actually used by a widget. %Size constraints in both dimensions. $A size constraint in one dimension. Exactly this many pixels. 'As many or as few pixels as necessary. At most this many pixels. At minimum this many pixels. <A rectangle represented as its upper-left corner, width and ; height. You should never create rectangles with negative C dimensions, and the functions in this module make no guarantee to  their behaviour if you do. BFlip the x and y coordinates and width and height of a rectangle, 3 in a sense rotating it ninety degrees. Note that rectTranspose  . rectTranspose = id. splitHoriz rect dims splits rect horizontally into a number B of non-overlapping equal-width rectangles stacked on top of each  other. dims4 is a list of height requirements that the function D will attempt to fulfill as best it is able. The union of the list 0 of returned rectangles will always be equal to rect. No / rectangle will ever have negative dimensions. As  splitHoriz1, but splits vertically instead of horizontally, / so the rectangles will be next to each other. constrainNeed need constraints reduces the space requirement  given by need in order to fulfill  constraints. fitRect rect need. yields a rectangle as large as possible, but  no larger than rect(, that tries to fulfill the constraints  need. align a lower x upper, where lower<=upper , aligns a  subinterval of length x in the interval lower to upper, C returning the coordinate at which the aligned subinterval starts.  For example, align AlignCenter 2 4 104align AlignNeg 2 4 102align AlignPos 2 4 106-adjustRect (walign, halign) bigrect smallrect returns a ' rectangle with the same dimensions as  smallrect aligned within  bigrect in both dimensions. string s returns a Sindre string. true v returns  if v# is interpreted as a true value in  Sindre,  otherwise. Canonical false value, see . Canonical true value, see . Canonical false value, see . Canonical true value, see . /A default position when no other is available. 8Prettyprint a source position in a human-readable form. !position ("foobar.sindre", 5, 15)"foobar.sindre:5:15: "x  y gives a value containing x, but with the same source  position as y. KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~̓s~}|{zyxwvutmrnopqilkjfhg_ed`abc[\]^UVWXYZKLMNOPQRTS,KLMNOPQRSTUVWXYZ[\]^_ed`abcfhgilkjmrnopqs~}|{zyxwvut portable provisional Safe-Infered parseSindre prog filename string extends the K prog D with the declarations in the given Sindre source code. In case of - mutually-exclusive definitions (such as the BEGIN block, or 6 identically named functions), the new definitions in string take  precedence. ATry to parse an integer according to the Sindre syntax, ignoring  trailing whitespace. portable provisionalNone MonadSindre im m is the class of monads m that run on top of   with backend im, and can thus access Sindre  functionality. Lift a  operation into this monad. *Lift a backend operation into this monad. 9The main monad in which a Sindre program executes. More  specialised monads, such as  are used for specific 8 purposes, but they all run on top of the Sindre monad. .A monad that can be used as the layer beneath . -Container describing a newly created object. -Container describing a newly created widget. &A method takes as arguments a list of s and returns  another 3. You probably do not want to call these directly 8 from Haskell code, as they are dynamically typed. See   ( for a convenient way to turn a Haskell " function into a suitable method. @An opaque notion of a field. These are for internal use in the  Sindre runtime. ;A typed description of a field, which may be read-write or @ read-only. When constructing the actual widget, you must turn  these into real s by using the  function. A C description of a field consists of a name and monadic actions for . reading and optionally writing to the field. 9Turn a Haskell-typed high-level field description into a  -typed field. execSindre e m executes the action m in environment e,  returning the exit code of m. Immediately return from , returning the given exit  code. [     J     J     E      portable provisionalNoneBThe monad in which widget construction takes place. You can only  execute this by defining a  that is then used in a  Sindre program (see also "). An example usage could be:   myWidget ::  MyBackEnd  myWidget w k cs : do % -- ConstructorM is an instance of , so we can provide 4 -- defaults or fallbacks for missing parameters.  arg  - 'param' \"myParam\" <| return 12  rest of construction 8Class of types that a given backend can convert to from s. ! In effect, a monadic version of . :Attempt to convert the given Sindre value to the relevant  Haskell value. BFunction that, given an initial value, the name of itself if any, D and a list of children, yields a computation that constructs a new  widget. ,Monad inside which compilation takes place. BMapping from names of global variables to computations that yield  their initial values.  ?Mapping from function names to built-in functions. These must  first be executed in the ! monad as they may have specific " requirements of the environment. !;Mapping from object names to object constructor functions. "*Mapping from class names to constructors. #@Given a Sindre program and its environment, compile the program D and return a pair of command-line options accepted by the program, E and a startup function. The program can be executed by calling the A startup function with the command-like arguments and an initial C value for the root widget. If compilation fails, an IO exception  is raised. $@Given a variable name, return a computation that will yield the & value of the variable when executed. %@Given a variable name, return a computation that can be used to . set the value of the variable when executed. & noParam k signals that parameter k is missing. ' badValue k v signals that parameter k is present with value  v , but that v is an invalid value. (k ( f* yields the value of the widget parameter k,  using f/ to convert it to the proper Haskell type. If f returns  |, ' k  is called. If k does not exist,  & k is called. )As ), but  is always used for conversion. *As *, but  is always used for conversion.  !"#$%&'()* !"#$%&'()*#"! )(*&'$% !"#$%&'()*portable provisional Safe-Infered +:A list of formatting commands, interpreted left-to-right. ,AA formatting command is either a change to the drawing state, or 1 a string to be printed at the current location. -Draw the given string. .+Draw the background in the default colour. /)Draw the background in the given colour. 0!Draw text in the default colour. 1Draw text in the given colour. 2<The human-readable part of a format string, with formatting  directives stripped. 3=The first background colour preceding any default background > colour or text entry specified in the format string, if any. 4Prettyprint a +" to a string that, when parsed by  5, results in the original + 5@Parse a format string, returning either an error message or the  result of the parse. +,-./012345 +,-./012345 ,10/.-+2354+,10/.-2345 portable provisional Safe-Infered6Convenience class for writing  values. 7'Given a list of modifiers and either a char or a ,  yield a 2. If given a character, the Chord will contain a  ', if given a string, it will contain a . 8<A class making it easy to adapt Haskell functions as Sindre  functions that take and return s. 9 function f. is a monadic function that accepts a list of  s and returns a $. If the list does not contain the + number, or type, of arguments expected by f,  will be + called with an appropriate error message. :?A set of pure functions that can work with any Sindre backend.  Includes the functions abs, atan2, cos, sin, exp, log,  int, sqrt, length, substr, index, match, sub, gsub,  tolower, and toupper. ;9A set of impure functions that only work in IO backends.  Includes the system function. <;Global variables that require an IO backend. Includes the  ENVIRON global. 6789:;<6789:;<:;<8967 6789:;< portable provisional Safe-Infered =The result of using F' to apply a user-provided pattern to a  string. A9A widget that arranges its children in a horizontal row. B:A widget that arranges its children in a vertical column. CchangeField field m applies m to the current value of the  field field , updates field with the value returned by m, and  returns the new value. DLike C, but without a return value. EchangingFields fields m evaluates m, then emits field change , events for those fields whose names are in fields that changed  while evaluating m. F match pat s applies the pattern pat to s and returns a  =) describing the kind of match if any, or | ? otherwise. The pattern is interpreted as tokens delimited by 9 whitespace, and each token must be present somewhere in s. GfilterMatches f pat l returns only those elements of l that  match pat, using f to convert each element to a . The ( result will be ordered equivalently to l HsortMatches f pat l returns only those elements of l that  match pat, using f to convert each element to a . The C result will be reordered such that exact matches come first, then D prefixes, then infixes, although original order will be maintained  within these three groups. =>?@ABCDEFGH =>?@ABCDEFGH ABCDE=@?>FGH =@?>ABCDEFGH  unportable provisionalNoneQ;Options regarding visual appearance of widgets (colors and  fonts). XSindre backend using Xlib. Y?The read-only configuration of the X11 backend, created during  backend initialisation. Z&The display that we are connected to. [-Bookkeeping primitive for Xft font handling. _BExecute Sindre in the X11 backend, grabbing control of the entire  display and staying on top. `@Execute Sindre in the X11 backend as an ordinary client visible  to the window manager. a+Execute Sindre in the X11 backend as a dock/ statusbar. b*An input stream object wrapping the given  . Input is 2 purely event-driven and line-oriented: the event lines is sent ? (roughly) for each sequence of lines that can be read without C blocking, with the payload being a single string value containing E the lines read since the last time the event was sent. When end of  file is reached, the eof event (no payload) is sent. c:Performs a lookup in the X resources database for a given  property. The class used is Sindre.class.property and the  name is progname.name.property, where progname is the  value of . d;Read visual options from either widget parameters or the X  resources database using c#, or a combination. The following  graphical components are read: Foreground color From fg parameter or  foreground X  property. Background color From bg parameter or  background X  property. Focus foreground color From ffg parameter or  focusForeground X property. Focus background color From fbg parameter or  focusBackground X property. eAHelper function that makes it easier it write consistent widgets B in the X11 backend. The widget is automatically filled with its C (nonfocus) background color. You are supposed to use this in the  drawI method of a Widget# instance definition. An example:  . drawI = drawing myWidgetWin myWidgetVisual $ r fg bg ffg fbg -> do  fg drawString 0 5 " foreground"  bg drawString 0 15 " background"  ffg drawString 0 25 "focus foreground"  fbg drawString 0 35 "focus background" f Variant of drawing, that assumes the entire rectangle is used. iBA simple dial using an arc segment to indicate the value compared  to the max value. Accepts max and value parameters (both 9 integers, default values 12 and 0), and a single field: value.   n and  p. are used to increase and decrease the value. j1Label displaying the text contained in the field label, which ? is also accepted as a widget parameter (defaults to the empty  string). k?A blank widget, showing only background color, that can use as C much or as little room as necessary. Useful for constraining the  layout of other widgets. l+Single-line text field, whose single field value (also a A parameter, defaults to the empty string) is the contents of the  editing buffer. mBHorizontal dmenu-style list containing a list of elements, one of  which is the "selected" element. If the parameter i is given a = true value, element matching will be case-insensitive. The " following methods are supported:  insert(string) Split string! into lines and add each line as  an element. clear() Delete all elements. filter(string)* Only display those elements that contain string. next() Move selection right. prev() Move selection left. first() Move to leftmost element. last() Move to rightmost element.  The field selected is the selected element. nAs m., except the list is vertical. The parameter lines 2 (default value 10) is the number of lines shown. )IJKLMNOPQRSTUVWXYZ[\]^_-The display string (usually the value of the  environment variable $DISPLAY or :0) The function returned by   after command line  options have been given `-The display string (usually the value of the  environment variable $DISPLAY or :0) The function returned by   after command line  options have been given a-The display string (usually the value of the  environment variable $DISPLAY or :0) The function returned by   after command line  options have been given bcName of widget, using _ if | is passed  Widget class Property name deThe body of the drawing call - this function is called ; with a rectangle representing the area of the widget, and  Js for  foreground,  background, focus foreground, and focus background respectively. fghijklmn&IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn&XYZ[_a`cQRSTUVWd^efIJKLMNOPgh\]ijklbmnIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn portable provisional Safe-InferedoThe main Sindre entry point. opqrstKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*opqrstopqrstopqrst !!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^__`abcdefghhijklmnoopqrstuvwxyz{|}~      !"#$%&'()*+,-./]0123456789:;<=>?@ A B C  D E F G H I J K L M N O P Q R S T T U V W X Y Z Z [ \ ] ^ _ ` a b c K d e f g h i j k l m n o p q r s t u v w x y z { | } ~       8    sindre-0.4 Sindre.KeyValGraphics.X11.Xft Sindre.Util Sindre.Sindre Sindre.ParserSindre.RuntimeSindre.CompilerSindre.Formatting Sindre.LibSindre.Widgets Sindre.X11 Sindre.Main Paths_sindreControl.ConcurrentMVar Text.ParsecPermfunction compileSindre permute-1.0Text.ParserCombinators.Perm<$?><|?><$$><||> GlyphInfoglyphImageWidthglyphImageHeight glyphImageX glyphImageY glyphWidth glyphHeight RenderColorredgreenbluealphaFontDrawColorXftMgr mgrDisplay mgrScreen newXftMgr freeXftMgrpixel newColorName newColorValue freeColor openColorNameopenColorValuedisplaycolormapvisualdrawablenewDraw newDrawBitmap newDrawAlphafreeDraw changeDrawopenDrawopenDrawBitmap openDrawAlphaascentdescentheightmaxAdvanceWidth newFontName newFontXlfdfreeFont openFontName openFontXlfdlockFace unlockFace textExtents textWidth textHeight drawGlyphs drawStringdrawRectiofierrupcasedowncasehsv2rgbwrapquoteclamp mapAccumLMifMparseKVvaluevaluesProgram programGUIprogramActionsprogramGlobalsprogramOptionsprogramFunctions programBegin Arguments SindreOptionGUI widgetName widgetClass widgetArgswidgetChildrenAction StmtActionFunctionPatternSourcedPattern patternSource patternEvent patternVars OrPattern ChordPattern SourcePat GenericSource NamedSource EventSource BackendSrc ObjectSrcFieldSrcEvent NamedEvent eventName eventValue eventSourceKeyPressExprCondMethcallFuncallRaisedToModuloDividedTimesMinusPlusConcatPostDecPostIncAssignEqualLessEqlLessThanNotLookupFieldOfVarLiteralStmtFocusContinueBreakDoForWhileIfNextReturnExitPrintP sourcePosunP SourcePosValueDict ReferenceNumberStringV Identifier WidgetRef ObjectRef ObjectNumChordKeyCtrlKeyCharKey KeyModifierShiftHyperSuperMetaControlAlign AlignCenterAlignPosAlignNeg ConstraintsSpaceUse SpaceNeedDimNeedExact UnlimitedMaxMin RectanglerectXrectY rectWidth rectHeight rectTranspose splitHoriz splitVert constrainNeedfitRectalign adjustRectstringtruetruthfalsitynowherepositionat parseSindre parseIntegerMoldmoldunmold EventHandler ExecutionObjectM MonadSindresindrebackSindre MonadBackend BackEvent RootPosition redrawRoot redrawRegion getBackEventwaitForBackEventprintVal SindreEnvobjectsevtQueueglobals execFramekbdFocus rootWidget arguments needsRedrawDataSlot NewObject NewWidgetMethodField FieldDesc ReadOnlyFieldReadWriteField fieldNamegetFieldfield newWidget newObject instWidget instObjectnewEnv execSindre quitSindre broadcastchangedredraw fullRedrawsetRootPosition globalVal setGlobalcomposedraw returnHeredoReturnnextHeredoNext breakHeredoBreakcontHeredoContexecuteexecute_setScope enterScope lexicalVal setLexicalcallMethodByRef setFieldByRef getFieldByRefrecvEventByRef eventLoop ConstructorMParammoldM ConstructorCompilerGlobMapFuncMap ObjectMapClassMapsetValuenoParambadValueparamAsparamMparam FormatStringFormatTextDefBgBgDefFgFg textContentsstartBgunparseFormatStringparseFormatStringKeyLikechord LiftFunction stdFunctions ioFunctions ioGlobalsMatch InfixMatch PrefixMatch ExactMatchmkHorizontally mkVertically changeField changeField_ changingFieldmatch filterMatches sortMatchesX11FieldDrawerfgbg drawerFont drawerFgColor drawerBgColor VisualOpts foreground backgroundfocusForegroundfocusBackgroundfont SindreX11M SindreX11Conf sindreDisplay sindreXftMgrdrawText allocColorsindreX11override sindreX11 sindreX11dock mkInStreamxopt visualOptsdrawingdrawing' setFgColor setBgColormkDialmkLabelmkBlank mkTextFieldmkHListmkVList sindreMain emptyProgramclassMap objectMapfuncMapglobMapversion getBinDir getLibDir getDataDir getLibexecDirgetDataFileNameghc-prim GHC.TypesIObase Data.MaybeNothing X11-1.5.0.1Graphics.X11.TypesDrawablePixmap$fStorableGlyphInfo$fStorableRenderColortransformers-0.2.2.0Control.Monad.IO.ClassliftIOGHC.Real fromIntegral Control.MonadmapMTrueFalse $fShowValue$fMonoidRectangle $fMold(,) $fMoldMaybe$fMold() $fMoldBool $fMoldInt $fMoldInteger $fMoldDouble $fMoldText$fMold[] $fMoldValue$fMonadSindreimExecution$fMonadIOObjectM$fMonadSindreimObjectM$fMonadSindreimSindre$fMonoidSindre$fMonadIOSindre$fMonadTransSindreControl.Applicative Alternative$fMonadIOConstructorM$fMonadSindreimConstructorM$fAlternativeConstructorM$fErrorParamErrorGHC.BaseStringfail $fKeyLike[] $fKeyLikeChar$fLiftFunctionimm(->)$fLiftFunctionimmmtext-0.11.1.13Data.Text.InternalGHC.IO.Handle.TypesHandleSystem.Environment getProgName$fParamSindreX11MFont$fParamSindreX11MColor$fMonadBackendSindreX11M