{-# LANGUAGE Rank2Types, MagicHash, UnboxedTuples #-}
module Data.RangeMin.Common.ST (ST, inlineRunST, runST) where

import GHC.ST
import GHC.Base

{-# INLINE inlineRunST #-}
inlineRunST :: (forall s . ST s a) -> a
inlineRunST m = case m of
	ST f -> case f realWorld# of
		(# _, x #) -> x