    -- | Some IORefs to access option values in pure code

    module Agda.Interaction.Options.IORefs
        ( UnicodeOrAscii(..)
        , unicodeOrAscii
        ) where

    import Data.IORef
    import qualified System.IO.Unsafe as UNSAFE

    -- | In `Agda.Syntax.Concrete.Pretty` and `Agda.Utils.String` we want to know
    -- whether we are allowed to insert unicode characters or not.

    data UnicodeOrAscii = UnicodeOk | AsciiOnly

    {-# NOINLINE unicodeOrAscii #-}
    unicodeOrAscii :: IORef UnicodeOrAscii
    unicodeOrAscii = UNSAFE.unsafePerformIO $ newIORef UnicodeOk