-- | Compute all transitions reachable from list of pairs of states
pairTransClosure :: (Ord q, Ord a) => NBA q a l
                                   -> [PowerPair q]
                                   -> [(PowerPair q, a, PowerPair q)]
pairTransClosure a ps = [(ps1, l, ps2) | (ps1, vs) <- M.assocs (genPowerSet a (M.fromList []) ps)
                                       , (ps2, l) <- vs]
pairTransClosure :: (Ord q, Ord a) => NBA q a l
                                   -> [PowerPair q]
                                   -> [(PowerPair q, a, PowerPair q)]
pairTransClosure a ps = [(ps1, l, ps2) | (ps1, vs) <- M.assocs (genPowerSet a (M.fromList []) ps)
                                       , (ps2, l) <- vs]
pairTransClosure a ps = [(ps1, l, ps2) | (ps1, vs) <- M.assocs (genPowerSet a (M.fromList []) ps)
                                       , (ps2, l) <- vs]