-- | Strict pairs
--
-- Unfortunately, this doesn't fit into the Strict.Container hierarchy
-- (different kind)
module IdeSession.Strict.Pair (
    StrictPair
  , toLazyPair
  , fromLazyPair
  ) where

newtype StrictPair a b = StrictPair { toLazyPair :: (a, b) }

fromLazyPair :: (a, b) -> StrictPair a b
fromLazyPair (a, b) = a `seq` b `seq` StrictPair (a, b)