-- print a value, but not all of it if it's enormous
summarize :: V cx -> ShowS
summarize v =
    let sumSize = 1000 in
    let sVal = show v in
    let (sSummary, sChopped) = L.splitAt sumSize sVal in
    showString sSummary . 
    if null sChopped then id else showString "\n...chopped"
summarize :: V cx -> ShowS
summarize v =
    let sumSize = 1000 in
    let sVal = show v in
    let (sSummary, sChopped) = L.splitAt sumSize sVal in
    showString sSummary . 
    if null sChopped then id else showString "\n...chopped"
summarize v =
    let sumSize = 1000 in
    let sVal = show v in
    let (sSummary, sChopped) = L.splitAt sumSize sVal in
    showString sSummary . 
    if null sChopped then id else showString "\n...chopped"