Я считаю, что следующее так же безопасно, как Set.mapMonotonic coerce
. то есть худшее, что может случиться, это то, что я сломаю инварианты Set
, если a
или b
имеют разные экземпляры Ord
:
coerceSet :: Coercible a b=> Set.Set a -> Set.Set b
coerceSet = unsafeCoerce
Это правильно?
РЕДАКТИРОВАТЬ: проблема с соответствующей функцией для Set
: https://github.com/haskell/containers/issues/308