diff --git a/Ledger/Ledger.hs b/Ledger/Ledger.hs index 2779899fd..3da90a1a1 100644 --- a/Ledger/Ledger.hs +++ b/Ledger/Ledger.hs @@ -37,11 +37,14 @@ import Ledger.Entry instance Show Ledger where - show l = printf "Ledger with %d entries, %d accounts" + show l = printf "Ledger with %d entries, %d accounts: %s" ((length $ entries $ rawledger l) + (length $ modifier_entries $ rawledger l) + (length $ periodic_entries $ rawledger l)) (length $ accountnames l) + (show $ accountnames l) + ++ "\n" ++ (showtree $ accountnametree l) + ++ "\n" ++ (showtree $ filteredaccountnametree l) -- | Convert a raw ledger to a more efficient cached type, described above. cacheLedger :: RawLedger -> Ledger diff --git a/Ledger/Utils.hs b/Ledger/Utils.hs index 8871720bf..d7080b8d6 100644 --- a/Ledger/Utils.hs +++ b/Ledger/Utils.hs @@ -109,6 +109,9 @@ treeany f t = (f $ root t) || (any (treeany f) $ branches t) -- treedrop -- remove the leaves which do fulfill predicate. -- treedropall -- do this repeatedly. +showtree :: Show a => Tree a -> String +showtree = drawTree . treemap show + -- debugging strace a = trace (show a) a -- trace a showable expression