isUniversal :: (Ord sym, Ord sta) => Set sym -> Fa sym sta -> Bool
isUniversal symbols fa =
  not (null $ states fa) && isSubsetOf symbols symbols universalFA fa
    where
      state = Set.findMin $ states fa
      transitions = Set.map (\symbol -> Transition symbol state state) symbols
      universalFA = Fa (Set.singleton state) (Set.singleton state) transitions
isUniversal :: (Ord sym, Ord sta) => Set sym -> Fa sym sta -> Bool
isUniversal symbols fa =
  not (null $ states fa) && isSubsetOf symbols symbols universalFA fa
    where
      state = Set.findMin $ states fa
      transitions = Set.map (\symbol -> Transition symbol state state) symbols
      universalFA = Fa (Set.singleton state) (Set.singleton state) transitions
isUniversal symbols fa =
  not (null $ states fa) && isSubsetOf symbols symbols universalFA fa
    where
      state = Set.findMin $ states fa
      transitions = Set.map (\symbol -> Transition symbol state state) symbols
      universalFA = Fa (Set.singleton state) (Set.singleton state) transitions