show_cand :: (Cand -> Sum Wins_type Loses_type) -> Cand -> P.String
show_cand f x =
   case (f x) of
    Inl g -> "winning: " P.++ P.show x  P.++ "\n" P.++ show_winner g x (P.filter (\y -> y P./= x) (c2hl cand_all))
    Inr h -> "losing: "  P.++ P.show x  P.++ "\n" P.++ show_loser h x
show_cand :: (Cand -> Sum Wins_type Loses_type) -> Cand -> P.String
show_cand f x =
   case (f x) of
    Inl g -> "winning: " P.++ P.show x  P.++ "\n" P.++ show_winner g x (P.filter (\y -> y P./= x) (c2hl cand_all))
    Inr h -> "losing: "  P.++ P.show x  P.++ "\n" P.++ show_loser h x
show_cand f x =
   case (f x) of
    Inl g -> "winning: " P.++ P.show x  P.++ "\n" P.++ show_winner g x (P.filter (\y -> y P./= x) (c2hl cand_all))
    Inr h -> "losing: "  P.++ P.show x  P.++ "\n" P.++ show_loser h x