{-# LANGUAGE CPP #-}

#if __GLASGOW_HASKELL__ >= 704
{-# LANGUAGE Unsafe #-}
#endif

-- | This module provides functions on PhaseChangeable data which can break referential transparency if used incorrectly.
--   For safe functions, see "Data.PhaseChange". To write an instance, see "Data.PhaseChange.Impl".
module Data.PhaseChange.Unsafe
    (
-- * Unsafe functions
    unsafeThaw,  unsafeFreeze,  readWith,
-- * Convenience functions for working with @'M1'@
    unsafeThaw1, unsafeFreeze1, readWith1,
-- * Convenience functions for working with @'M2'@
    unsafeThaw2, unsafeFreeze2, readWith2
    )
    where

import Data.PhaseChange.Internal
import Data.PhaseChange.Instances ()