emacs-module-0.2: src/Data/Emacs/Module/SymbolName/Predefined/Funcall.hs
----------------------------------------------------------------------------
-- |
-- Module : Data.Emacs.Module.SymbolName.Predefined.Funcall
-- Copyright : (c) Sergey Vinokurov 2022
-- License : Apache-2.0 (see LICENSE)
-- Maintainer : serg.foo@gmail.com
----------------------------------------------------------------------------
{-# LANGUAGE DataKinds #-}
module Data.Emacs.Module.SymbolName.Predefined.Funcall
( funcall
) where
import Data.IORef
import System.IO.Unsafe
import Data.Emacs.Module.Raw.Env.Internal
import Data.Emacs.Module.Raw.Value
import {-# SOURCE #-} Data.Emacs.Module.SymbolName.Internal
funcallSym :: SymbolName
funcallSym = mkSymbolNameString "funcall"
{-# NOINLINE funcallCache #-}
funcallCache :: IORef (Env -> IO (RawValue 'Pinned))
funcallCache = unsafePerformIO $ mkSymbolNameCache funcallSym
funcall :: SymbolName
funcall = mkCachedSymbolName funcallCache funcallSym