definition: |
showSearchTree :: Show a => SearchTree a -> String showSearchTree st = showsST [] st "" where -- `showsST ctxt <SearchTree>`, where `ctxt` is a stack of boolean flags -- indicating whether we show the last alternative of the respective -- level to enable drawing aesthetical corners showsST ctxt (Value a) = indent ctxt . shows a . nl showsST ctxt (Fail _) = indent ctxt . showChar '!' . nl showsST ctxt (Or t1 t2) = indent ctxt . showChar '?' . nl . showsST (False : ctxt) t1 . showsST (True : ctxt) t2 indent [] = id indent (i:is) = showString (concatMap showIndent $ reverse is) . showChar (if i then llc else lmc) . showString (hbar : " ") where showIndent isLast = (if isLast then ' ' else vbar) : " " vbar = '\x2502' -- vertical bar hbar = '\x2500' -- horizontal bar llc = '\x2514' -- left lower corner lmc = '\x251c' -- left middle corner nl = showChar '\n' shows x = showString (show x) showChar c = (c:) showString s = (s++) |
demand: |
argument 2 |
deterministic: |
deterministic operation |
documentation: |
--- Shows the search tree as an intended line structure |
failfree: |
(_, _) |
indeterministic: |
might be indeterministic |
infix: |
no fixity defined |
iotype: |
{(_,_) |-> _} |
name: |
showSearchTree |
precedence: |
no precedence defined |
result-values: |
_ |
signature: |
Prelude.Show a => SearchTree a -> String |
solution-complete: |
operation might suspend on free variables |
terminating: |
yes |
totally-defined: |
reducible on all ground data terms |