@@ -14,12 +14,14 @@ module Streamly.Internal.BaseCompat
1414 , fromLeft
1515 , fromRight
1616 , unsafeWithForeignPtr
17+ , oneShot
1718 )
1819where
1920
2021import Data.Coerce (Coercible, coerce)
2122#if MIN_VERSION_base(4,10,0)
2223import Data.Either (fromRight, fromLeft)
24+import qualified GHC.Exts as GHCExt
2325#endif
2426import GHC.ForeignPtr (ForeignPtr(..))
2527import GHC.Ptr (Ptr(..))
@@ -55,3 +57,10 @@ unsafeWithForeignPtr = GHCForeignPtr.unsafeWithForeignPtr
5557#else
5658unsafeWithForeignPtr = withForeignPtr
5759#endif
60+
61+oneShot :: (a -> b) -> a -> b
62+#if MIN_VERSION_base(4,10,0)
63+oneShot = GHCExt.oneShot
64+#else
65+oneShot = id
66+#endif