BSD-3-Clause licensed by James Cook, Oleg Grenrus
Maintained by Oleg Grenrus
This version can be pinned in stack with:some-,1985
Depends on 2 packages(full list with versions):

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.


  • Drop support for GHC before 8.6


  • Add instances for (:~~:)
  • Add instances for :+: and :*:
  • Add defaultGeq :: GCompare f => f a -> f b -> Maybe (a :~: b)
  • Add defaultGshowsPrec :: Show (t a) => Int -> t a -> ShowS


  • 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