    {-# LANGUAGE Trustworthy #-}

    -- |
    --
    -- Module      :  Foreign.ForeignPtr.Safe
    -- Copyright   :  (c) The University of Glasgow 2001
    -- License     :  BSD-style (see the file libraries/base/LICENSE)
    --
    -- Maintainer  :  ffi@haskell.org
    -- Stability   :  provisional
    -- Portability :  portable
    --
    -- The 'ForeignPtr' type and operations.  This module is part of the
    -- Foreign Function Interface (FFI) and will usually be imported via
    -- the "Foreign" module.
    --
    -- Safe API Only.
    --

    module Foreign.ForeignPtr.Safe
        {-# DEPRECATED "Safe is now the default, please use GHC.Internal.Foreign.ForeignPtr instead" #-}
        (-- *  Finalised data pointers
         ForeignPtr,
         FinalizerPtr,
         FinalizerEnvPtr,
         -- **  Basic operations
         newForeignPtr,
         newForeignPtr_,
         addForeignPtrFinalizer,
         newForeignPtrEnv,
         addForeignPtrFinalizerEnv,
         withForeignPtr,
         finalizeForeignPtr,
         -- **  Low-level operations
         touchForeignPtr,
         castForeignPtr,
         -- **  Allocating managed memory
         mallocForeignPtr,
         mallocForeignPtrBytes,
         mallocForeignPtrArray,
         mallocForeignPtrArray0
         ) where

    import GHC.Internal.Foreign.ForeignPtr.Imp