?={!      SafeU 8A label that can be pre- or postfixed to a progress bar."Types that can represent progress.^Any progress bar state that implements this class can be used by the default label functions.State of a progress bar.Amount of work completed.Total amount of work.+Type of functions producing a progress bar. Print a progress bar to !See  . Print a progress bar to !$ which takes up all available space.QThe given width will be used if the width of the terminal can not be determined.See  . &Print a progress bar to a file handle.(Erases the current line! (by outputting '\r') Does not print a newline '\n'=. Subsequent invocations will overwrite the previous output. Renders a progress bar2mkProgressBar (msg "Working") percentage 40 30 100*"Working [=======>.................] 30%" The empty label. noLabel st""&A label consisting of a static string. msg "foo" st"foo"4A label which displays the progress as a percentage.HConstant width property: " d t : !. d "d t ! length (percentage d t) "a 4percentage 30 100" 30%"NoteK: if no work is to be done (todo == 0) the percentage will always be 100%.OA label which displays the progress as a fraction of the total amount of work.]Equal width property: " d d t : !. d "d d "d t ! length (exact d t) "a length (exact d t)exact (30, 100) " 30/100"\Start a thread to automatically display progress. Use incProgress to step the progress bar.Increment the progress bar. Negative values will reverse the progress. Progress will never be negative and will silently stop taking data when it completes.Current progress bar state.Resulting label.Prefixed label.Postfixed label.Total progress bar width in characters. Either used as given or as a default when the width of the terminal can not be determined.See  .Progress bar state.Prefixed label.Postfixed label.'Total progress bar width in characters. Init state   "#$%&'SafeU< 8A label that can be pre- or postfixed to a progress bar.+Type of functions producing a progress bar.Print a progress bar to !See .Print a progress bar to !$ which takes up all available space.QThe given width will be used if the width of the terminal can not be determined.See .&Print a progress bar to a file handle.(Erases the current line! (by outputting '\r') Does not print a newline '\n'=. Subsequent invocations will overwrite the previous output.Renders a progress bar2mkProgressBar (msg "Working") percentage 40 30 100*"Working [=======>.................] 30%"The empty label.noLabel 30 100""&A label consisting of a static string.msg "foo" 30 100"foo"4A label which displays the progress as a percentage.HConstant width property: " d t : !. d "d t ! length (percentage d t) "a 4percentage 30 100" 30%"NoteK: if no work is to be done (todo == 0) the percentage will always be 100%.OA label which displays the progress as a fraction of the total amount of work.]Equal width property: " d d t : !. d "d d "d t ! length (exact d t) "a length (exact d t) exact 30 100 " 30/100"\Start a thread to automatically display progress. Use incProgress to step the progress bar. Increment the progress bar. Negative values will reverse the progress. Progress will never be negative and will silently stop taking data when it completes.Current progress.Resulting label.Prefixed label.Postfixed label.Total progress bar width in characters. Either used as given or as a default when the width of the terminal can not be determined.See .Current progress.Prefixed label.Postfixed label.dTotal progress bar width in characters. Only used if the width can not be automatically determined.Initial progress state.  (         0terminal-progress-bar-0.2-EfCycZ0wJer3ifiXiw77dRSystem.ProgressBar.StateSystem.ProgressBar ProgressRefLabel HasProgress getProgressProgress progressDone progressTodo ProgressBar progressBarautoProgressBar hProgressBar mkProgressBarnoLabelmsg percentageexact startProgress incProgress$fHasProgressProgressbaseGHC.IO.Handle.FDstderrprPrefix prPostfixprWidthprStateprQueue