BSD-3-Clause licensed by James Cook, Oleg Grenrus
Maintained by Oleg Grenrus
This version can be pinned in stack with:some-1.0.3@sha256:938cec5fc0d3a08dde34cfc0acd5a0aa2e9fd489c9dbb64417f16588dfb47af0,2399

This library defines an existential type Some.

data Some f where
    Some :: f a -> Some f

in few variants, and utilities to work with it.

If you are unsure which variant to use, use the one in Data.Some module.



  • Make GNFData PolyKinded.
  • Add GNFData ((:~:) a) and GNFData TypeRep instances


  • Explicitly mark Data.Some as Safe. It was previously inferred, yet it was Safe too, as it only re-exports other explicitly marked modules.
  • Allow base-4.15, GHC-9.0 compatibility


  • One less unsafeCoerce (thanks to David Feuer)

  • Broken release


  • Split out of dependent-sum
  • Have GADT, Newtype, Church variants
  • Add NFData instance