pure-borrow-0.0.0.0: src/Control/Monad/Borrow/Pure/BO/Unsafe.hs
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE ImpredicativeTypes #-}
{-# LANGUAGE PartialTypeSignatures #-}
{-# LANGUAGE QualifiedDo #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -Wno-name-shadowing #-}
{- |
This module provides __unsafe__ internals of "Control.Monad.Borrow.Pure".
These are not meant to be used by end-users, so generally YOU SHOULD NOT import this module, and import "Control.Monad.Borrow.Pure" instead.
This module is meant for library authors who want to build a new API on top of Pure Borrow.
This module provides internals of 'BO' and 'Alias', which can break the soundness guarded by the role system.
We __STRONGLY__ recommend to you to import only the needed parts of the definitions, and not to import everything or qualified.
-}
module Control.Monad.Borrow.Pure.BO.Unsafe (
-- * Internal definitions and utilities of core types.
BO (..),
Alias (..),
unsafeUnalias,
unsafeMapAlias,
-- * Conversions from/to 'BO' monad.
unsafeBOToLinIO,
unsafeLinIOToBO,
unsafeBOToSystemIO,
unsafeSystemIOToBO,
unsafeSTToBO,
unsafeBOToST,
unsafeUnBO,
) where
import Control.Monad.Borrow.Pure.BO.Internal