{-# 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