show_loser :: Loses_type -> Cand -> P.String
show_loser g x = 
  case g of 
   (ExistT u (ExistT c (Pair p (ExistT f _)))) -> 
    "   for " P.++ P.show c P.++ ": " P.++ "path " P.++ P.show p P.++ " of strength >= " P.++ P.show (haskZ u) P.++ ", " P.++
    P.show (haskZ u) P.++ "-" P.++ "coclosed set: " P.++ P.show (P.filter (\(xx, yy) -> f (Pair xx yy) P.== True) [(a, b) | a <- (c2hl cand_all), b <- (c2hl cand_all), a P./= b])
show_loser :: Loses_type -> Cand -> P.String
show_loser g x = 
  case g of 
   (ExistT u (ExistT c (Pair p (ExistT f _)))) -> 
    "   for " P.++ P.show c P.++ ": " P.++ "path " P.++ P.show p P.++ " of strength >= " P.++ P.show (haskZ u) P.++ ", " P.++
    P.show (haskZ u) P.++ "-" P.++ "coclosed set: " P.++ P.show (P.filter (\(xx, yy) -> f (Pair xx yy) P.== True) [(a, b) | a <- (c2hl cand_all), b <- (c2hl cand_all), a P./= b])
show_loser g x = 
  case g of 
   (ExistT u (ExistT c (Pair p (ExistT f _)))) -> 
    "   for " P.++ P.show c P.++ ": " P.++ "path " P.++ P.show p P.++ " of strength >= " P.++ P.show (haskZ u) P.++ ", " P.++
    P.show (haskZ u) P.++ "-" P.++ "coclosed set: " P.++ P.show (P.filter (\(xx, yy) -> f (Pair xx yy) P.== True) [(a, b) | a <- (c2hl cand_all), b <- (c2hl cand_all), a P./= b])