{-# LANGUAGE NoImplicitPrelude #-}

-------------------------------------------------------------------------------
-- |
-- Module      :  Foreign.Ptr.Region.Unsfe
-- Copyright   :  (c) 2010 Bas van Dijk
-- License     :  BSD3 (see the file LICENSE)
-- Maintainer  :  Bas van Dijk <v.dijk.bas@gmail.com>
--
-- /Unsafe/ functions for constructing regional pointers, retrieving the native
-- @Ptr@ from a regional pointer and for lifting operations on @Ptrs@ to
-- @RegionalPtrs@.
--
--
-------------------------------------------------------------------------------

module Foreign.Ptr.Region.Unsafe
    ( -- * Unsafely constructing regional pointers
      unsafeRegionalPtr
    , unsafePureRegionalPtr

      -- * Unsafe utility functions for lifting operations on @Ptrs@ to @RegionalPtrs@

    --  | These operations are unsafe because they allow you to @free@ the
    --  regional pointer before exiting their region. So they enable you to
    --  perform @IO@ with already freed pointers.
    , unsafePtr
    , unsafeWrap, unsafeWrap2, unsafeWrap3
    ) where

import Foreign.Ptr.Region.Internal ( unsafeRegionalPtr
                                   , unsafePureRegionalPtr

                                   , unsafePtr
                                   , unsafeWrap, unsafeWrap2, unsafeWrap3
                                   )