The advice to use unsafeCoerce strikes me as a bit harsh. It's also a bit dangerous, because someone could accidentally coerce the value to an unrelated type. I'd much rather see a Refined.Unsafe or Refined.Internal module exporting the actual constructor, and perhaps also a reallyUnsafeRefine function to get the point across.
The advice to use
unsafeCoerce
strikes me as a bit harsh. It's also a bit dangerous, because someone could accidentally coerce the value to an unrelated type. I'd much rather see aRefined.Unsafe
orRefined.Internal
module exporting the actual constructor, and perhaps also areallyUnsafeRefine
function to get the point across.