    {-# LINE 1 "src/Lua/Constants.hsc" #-}
    {-# LANGUAGE PatternSynonyms #-}
    {-|
    Module      : Lua.Constants
    Copyright   : © 2007–2012 Gracjan Polak;
                  © 2012–2016 Ömer Sinan Ağacan;
                  © 2017-2025 Albert Krewinkel
    License     : MIT
    Maintainer  : Albert Krewinkel <tarleb@hslua.org>
    Stability   : beta
    Portability : ForeignFunctionInterface

    Lua constants
    -}
    module Lua.Constants
      ( -- * Version and copyright information
        pattern LUA_VERSION
      , pattern LUA_RELEASE
      , pattern LUA_COPYRIGHT
        -- * Special values
      , pattern LUA_MULTRET
        -- * Pseudo-indices
      , pattern LUA_REGISTRYINDEX
        -- * Basic types
      , pattern LUA_TNONE
      , pattern LUA_TNIL
      , pattern LUA_TBOOLEAN
      , pattern LUA_TLIGHTUSERDATA
      , pattern LUA_TNUMBER
      , pattern LUA_TSTRING
      , pattern LUA_TTABLE
      , pattern LUA_TFUNCTION
      , pattern LUA_TUSERDATA
      , pattern LUA_TTHREAD
        -- * Status codes
      , pattern LUA_OK
      , pattern LUA_YIELD
      , pattern LUA_ERRRUN
      , pattern LUA_ERRSYNTAX
      , pattern LUA_ERRMEM
      , pattern LUA_ERRERR
      , pattern LUA_ERRFILE
        -- * Relational operator codes
      , pattern LUA_OPEQ
      , pattern LUA_OPLT
      , pattern LUA_OPLE
        -- * Codes for arithmetic operations
      , pattern LUA_OPADD
      , pattern LUA_OPSUB
      , pattern LUA_OPMUL
      , pattern LUA_OPDIV
      , pattern LUA_OPIDIV
      , pattern LUA_OPMOD
      , pattern LUA_OPPOW
      , pattern LUA_OPUNM
      , pattern LUA_OPBNOT
      , pattern LUA_OPBAND
      , pattern LUA_OPBOR
      , pattern LUA_OPBXOR
      , pattern LUA_OPSHL
      , pattern LUA_OPSHR
        -- * Garbage-collection options
      , pattern LUA_GCSTOP
      , pattern LUA_GCRESTART
      , pattern LUA_GCCOLLECT
      , pattern LUA_GCCOUNT
      , pattern LUA_GCCOUNTB
      , pattern LUA_GCSTEP
      , pattern LUA_GCSETPAUSE
      , pattern LUA_GCSETSTEPMUL
      , pattern LUA_GCISRUNNING
      , pattern LUA_GCGEN
      , pattern LUA_GCINC
        -- * Predefined references
      , pattern LUA_REFNIL
      , pattern LUA_NOREF
        -- * Predefined values in the registry
      , pattern LUA_RIDX_GLOBALS
        -- * Boolean
      , pattern TRUE
      , pattern FALSE
      ) where

    import Foreign.C (CInt (..))
    import Lua.Types

    --
    -- Version and copyright info
    --

    -- | Lua version information in the form "@Lua MAJOR.MINOR@".
    pattern LUA_VERSION :: String

    -- | Lua version information in the form "@Lua MAJOR.MINOR.RELEASE@".
    pattern LUA_RELEASE :: String

    -- | Lua copyright information; includes the Lua release
    pattern LUA_COPYRIGHT :: String

    {-# LINE 107 "src/Lua/Constants.hsc" #-}
    pattern $mLUA_RELEASE :: forall {r}. String -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_RELEASE :: String
    LUA_RELEASE = "Lua 5.4.8"
    {-# LINE 108 "src/Lua/Constants.hsc" #-}
    pattern LUA_VERSION = "Lua 5.4"
    {-# LINE 109 "src/Lua/Constants.hsc" #-}
    pattern LUA_COPYRIGHT = "Lua 5.4.8  Copyright (C) 1994-2025 Lua.org, PUC-Rio"
    {-# LINE 110 "src/Lua/Constants.hsc" #-}

    {-# LINE 111 "src/Lua/Constants.hsc" #-}

    --
    -- Special values
    --

    -- | Option for multiple returns in @'Lua.lua_pcall'@.
    pattern LUA_MULTRET :: NumResults
    pattern $mLUA_MULTRET :: forall {r}. NumResults -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_MULTRET :: NumResults
    LUA_MULTRET = NumResults (-1)
    {-# LINE 119 "src/Lua/Constants.hsc" #-}

    -- | Stack index of the Lua registry.
    pattern LUA_REGISTRYINDEX :: StackIndex
    pattern $mLUA_REGISTRYINDEX :: forall {r}. StackIndex -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_REGISTRYINDEX :: StackIndex
    LUA_REGISTRYINDEX = StackIndex (-1001000)
    {-# LINE 123 "src/Lua/Constants.hsc" #-}

    --
    -- Type of Lua values
    --
    -- | Non-valid stack index
    pattern LUA_TNONE :: TypeCode
    pattern $mLUA_TNONE :: forall {r}. TypeCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_TNONE :: TypeCode
    LUA_TNONE = TypeCode (-1)
    {-# LINE 130 "src/Lua/Constants.hsc" #-}

    -- | Type of Lua's @nil@ value
    pattern LUA_TNIL :: TypeCode
    pattern $mLUA_TNIL :: forall {r}. TypeCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_TNIL :: TypeCode
    LUA_TNIL = TypeCode (0)
    {-# LINE 134 "src/Lua/Constants.hsc" #-}

    -- | Type of Lua booleans
    pattern LUA_TBOOLEAN :: TypeCode
    pattern $mLUA_TBOOLEAN :: forall {r}. TypeCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_TBOOLEAN :: TypeCode
    LUA_TBOOLEAN = TypeCode (1)
    {-# LINE 138 "src/Lua/Constants.hsc" #-}

    -- | Type of light userdata
    pattern LUA_TLIGHTUSERDATA :: TypeCode
    pattern $mLUA_TLIGHTUSERDATA :: forall {r}. TypeCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_TLIGHTUSERDATA :: TypeCode
    LUA_TLIGHTUSERDATA = TypeCode (2)
    {-# LINE 142 "src/Lua/Constants.hsc" #-}

    -- | Type of Lua numbers. See @'Lua.Number'@
    pattern LUA_TNUMBER :: TypeCode
    pattern $mLUA_TNUMBER :: forall {r}. TypeCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_TNUMBER :: TypeCode
    LUA_TNUMBER = TypeCode (3)
    {-# LINE 146 "src/Lua/Constants.hsc" #-}

    -- | Type of Lua string values
    pattern LUA_TSTRING :: TypeCode
    pattern $mLUA_TSTRING :: forall {r}. TypeCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_TSTRING :: TypeCode
    LUA_TSTRING = TypeCode (4)
    {-# LINE 150 "src/Lua/Constants.hsc" #-}

    -- | Type of Lua tables
    pattern LUA_TTABLE :: TypeCode
    pattern $mLUA_TTABLE :: forall {r}. TypeCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_TTABLE :: TypeCode
    LUA_TTABLE = TypeCode (5)
    {-# LINE 154 "src/Lua/Constants.hsc" #-}

    -- | Type of functions, either normal or @'CFunction'@
    pattern LUA_TFUNCTION :: TypeCode
    pattern $mLUA_TFUNCTION :: forall {r}. TypeCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_TFUNCTION :: TypeCode
    LUA_TFUNCTION = TypeCode (6)
    {-# LINE 158 "src/Lua/Constants.hsc" #-}

    -- | Type of full user data
    pattern LUA_TUSERDATA :: TypeCode
    pattern $mLUA_TUSERDATA :: forall {r}. TypeCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_TUSERDATA :: TypeCode
    LUA_TUSERDATA = TypeCode (7)
    {-# LINE 162 "src/Lua/Constants.hsc" #-}

    -- | Type of Lua threads
    pattern LUA_TTHREAD :: TypeCode
    pattern $mLUA_TTHREAD :: forall {r}. TypeCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_TTHREAD :: TypeCode
    LUA_TTHREAD = TypeCode (8)
    {-# LINE 166 "src/Lua/Constants.hsc" #-}

    --
    -- Status codes
    --

    -- | Success.
    pattern LUA_OK :: StatusCode
    pattern $mLUA_OK :: forall {r}. StatusCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OK :: StatusCode
    LUA_OK = StatusCode 0
    {-# LINE 174 "src/Lua/Constants.hsc" #-}

    -- | Yielding / suspended coroutine.
    pattern LUA_YIELD :: StatusCode
    pattern $mLUA_YIELD :: forall {r}. StatusCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_YIELD :: StatusCode
    LUA_YIELD = StatusCode 1
    {-# LINE 178 "src/Lua/Constants.hsc" #-}

    -- | A runtime error.
    pattern LUA_ERRRUN :: StatusCode
    pattern $mLUA_ERRRUN :: forall {r}. StatusCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_ERRRUN :: StatusCode
    LUA_ERRRUN = StatusCode 2
    {-# LINE 182 "src/Lua/Constants.hsc" #-}

    -- | A syntax error.
    pattern LUA_ERRSYNTAX :: StatusCode
    pattern $mLUA_ERRSYNTAX :: forall {r}. StatusCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_ERRSYNTAX :: StatusCode
    LUA_ERRSYNTAX = StatusCode 3
    {-# LINE 186 "src/Lua/Constants.hsc" #-}

    -- | Memory allocation error. For such errors, Lua does not call the
    -- message handler.
    pattern LUA_ERRMEM :: StatusCode
    pattern $mLUA_ERRMEM :: forall {r}. StatusCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_ERRMEM :: StatusCode
    LUA_ERRMEM = StatusCode 4
    {-# LINE 191 "src/Lua/Constants.hsc" #-}

    -- | Error while running the message handler.
    pattern LUA_ERRERR :: StatusCode
    pattern $mLUA_ERRERR :: forall {r}. StatusCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_ERRERR :: StatusCode
    LUA_ERRERR = StatusCode 5
    {-# LINE 195 "src/Lua/Constants.hsc" #-}

    -- | File related error (e.g., the file cannot be opened or read).
    pattern LUA_ERRFILE :: StatusCode
    pattern $mLUA_ERRFILE :: forall {r}. StatusCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_ERRFILE :: StatusCode
    LUA_ERRFILE = StatusCode 6
    {-# LINE 199 "src/Lua/Constants.hsc" #-}

    --
    -- Comparison operators
    --

    -- | Compares for equality (==)
    pattern LUA_OPEQ :: OPCode
    pattern $mLUA_OPEQ :: forall {r}. OPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPEQ :: OPCode
    LUA_OPEQ = OPCode 0
    {-# LINE 207 "src/Lua/Constants.hsc" #-}

    -- | Compares for less than (<)
    pattern LUA_OPLT :: OPCode
    pattern $mLUA_OPLT :: forall {r}. OPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPLT :: OPCode
    LUA_OPLT = OPCode 1
    {-# LINE 211 "src/Lua/Constants.hsc" #-}

    -- | Compares for less or equal (<=)
    pattern LUA_OPLE :: OPCode
    pattern $mLUA_OPLE :: forall {r}. OPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPLE :: OPCode
    LUA_OPLE = OPCode 2
    {-# LINE 215 "src/Lua/Constants.hsc" #-}

    --
    -- Arithmetic and bitwise operators
    --

    -- | Performs addition (@+@).
    pattern LUA_OPADD :: ArithOPCode
    pattern $mLUA_OPADD :: forall {r}. ArithOPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPADD :: ArithOPCode
    LUA_OPADD = ArithOPCode 0
    {-# LINE 223 "src/Lua/Constants.hsc" #-}

    -- | Performs subtraction (@-@)
    pattern LUA_OPSUB :: ArithOPCode
    pattern $mLUA_OPSUB :: forall {r}. ArithOPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPSUB :: ArithOPCode
    LUA_OPSUB = ArithOPCode 1
    {-# LINE 227 "src/Lua/Constants.hsc" #-}

    -- | Performs multiplication (@*@)
    pattern LUA_OPMUL :: ArithOPCode
    pattern $mLUA_OPMUL :: forall {r}. ArithOPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPMUL :: ArithOPCode
    LUA_OPMUL = ArithOPCode 2
    {-# LINE 231 "src/Lua/Constants.hsc" #-}

    -- | Performs float division (@\/@)
    pattern LUA_OPDIV :: ArithOPCode
    pattern $mLUA_OPDIV :: forall {r}. ArithOPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPDIV :: ArithOPCode
    LUA_OPDIV = ArithOPCode 5
    {-# LINE 235 "src/Lua/Constants.hsc" #-}

    -- | Performs floor division (@\/\/@)
    pattern LUA_OPIDIV :: ArithOPCode
    pattern $mLUA_OPIDIV :: forall {r}. ArithOPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPIDIV :: ArithOPCode
    LUA_OPIDIV = ArithOPCode 6
    {-# LINE 239 "src/Lua/Constants.hsc" #-}

    -- | Performs modulo (@%@)
    pattern LUA_OPMOD :: ArithOPCode
    pattern $mLUA_OPMOD :: forall {r}. ArithOPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPMOD :: ArithOPCode
    LUA_OPMOD = ArithOPCode 3
    {-# LINE 243 "src/Lua/Constants.hsc" #-}

    -- | Performs exponentiation (@^@)
    pattern LUA_OPPOW :: ArithOPCode
    pattern $mLUA_OPPOW :: forall {r}. ArithOPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPPOW :: ArithOPCode
    LUA_OPPOW = ArithOPCode 4
    {-# LINE 247 "src/Lua/Constants.hsc" #-}

    -- | Performs mathematical negation (unary @-@)
    pattern LUA_OPUNM :: ArithOPCode
    pattern $mLUA_OPUNM :: forall {r}. ArithOPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPUNM :: ArithOPCode
    LUA_OPUNM = ArithOPCode 12
    {-# LINE 251 "src/Lua/Constants.hsc" #-}

    -- | Performs bitwise NOT (@~@)
    pattern LUA_OPBNOT :: ArithOPCode
    pattern $mLUA_OPBNOT :: forall {r}. ArithOPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPBNOT :: ArithOPCode
    LUA_OPBNOT = ArithOPCode 13
    {-# LINE 255 "src/Lua/Constants.hsc" #-}

    -- | Performs bitwise AND (@&@)
    pattern LUA_OPBAND :: ArithOPCode
    pattern $mLUA_OPBAND :: forall {r}. ArithOPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPBAND :: ArithOPCode
    LUA_OPBAND = ArithOPCode 7
    {-# LINE 259 "src/Lua/Constants.hsc" #-}

    -- | Performs bitwise OR (@|@)
    pattern LUA_OPBOR :: ArithOPCode
    pattern $mLUA_OPBOR :: forall {r}. ArithOPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPBOR :: ArithOPCode
    LUA_OPBOR = ArithOPCode 8
    {-# LINE 263 "src/Lua/Constants.hsc" #-}

    -- | Performs bitwise exclusive OR (@~@)
    pattern LUA_OPBXOR :: ArithOPCode
    pattern $mLUA_OPBXOR :: forall {r}. ArithOPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPBXOR :: ArithOPCode
    LUA_OPBXOR = ArithOPCode 9
    {-# LINE 267 "src/Lua/Constants.hsc" #-}

    -- | Performs left shift (@\<\<@)
    pattern LUA_OPSHL :: ArithOPCode
    pattern $mLUA_OPSHL :: forall {r}. ArithOPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPSHL :: ArithOPCode
    LUA_OPSHL = ArithOPCode 10
    {-# LINE 271 "src/Lua/Constants.hsc" #-}

    -- | Performs right shift (@>>@)
    pattern LUA_OPSHR :: ArithOPCode
    pattern $mLUA_OPSHR :: forall {r}. ArithOPCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_OPSHR :: ArithOPCode
    LUA_OPSHR = ArithOPCode 11
    {-# LINE 275 "src/Lua/Constants.hsc" #-}

    --
    -- Garbage-collection options
    --

    -- | Stops the garbage collector.
    pattern LUA_GCSTOP :: GCCode
    pattern $mLUA_GCSTOP :: forall {r}. GCCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_GCSTOP :: GCCode
    LUA_GCSTOP = GCCode 0
    {-# LINE 283 "src/Lua/Constants.hsc" #-}

    -- | Restarts the garbage collector.
    pattern LUA_GCRESTART :: GCCode
    pattern $mLUA_GCRESTART :: forall {r}. GCCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_GCRESTART :: GCCode
    LUA_GCRESTART = GCCode 1
    {-# LINE 287 "src/Lua/Constants.hsc" #-}

    -- | Performs a full garbage-collection cycle.
    pattern LUA_GCCOLLECT :: GCCode
    pattern $mLUA_GCCOLLECT :: forall {r}. GCCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_GCCOLLECT :: GCCode
    LUA_GCCOLLECT = GCCode 2
    {-# LINE 291 "src/Lua/Constants.hsc" #-}

    -- | Returns the current amount of memory (in Kbytes) in use by Lua.
    pattern LUA_GCCOUNT :: GCCode
    pattern $mLUA_GCCOUNT :: forall {r}. GCCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_GCCOUNT :: GCCode
    LUA_GCCOUNT = GCCode 3
    {-# LINE 295 "src/Lua/Constants.hsc" #-}

    -- | Returns the remainder of dividing the current amount of bytes of
    -- memory in use by Lua by 1024.
    pattern LUA_GCCOUNTB :: GCCode
    pattern $mLUA_GCCOUNTB :: forall {r}. GCCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_GCCOUNTB :: GCCode
    LUA_GCCOUNTB = GCCode 4
    {-# LINE 300 "src/Lua/Constants.hsc" #-}

    -- | Performs an incremental step of garbage collection.
    pattern LUA_GCSTEP :: GCCode
    pattern $mLUA_GCSTEP :: forall {r}. GCCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_GCSTEP :: GCCode
    LUA_GCSTEP = GCCode 5
    {-# LINE 304 "src/Lua/Constants.hsc" #-}

    -- | Sets data as the new value for the pause of the collector (see
    -- §2.5) and returns the previous value of the pause.
    pattern LUA_GCSETPAUSE :: GCCode
    pattern $mLUA_GCSETPAUSE :: forall {r}. GCCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_GCSETPAUSE :: GCCode
    LUA_GCSETPAUSE = GCCode 6
    {-# LINE 309 "src/Lua/Constants.hsc" #-}

    -- | Sets data as the new value for the step multiplier of the collector
    -- (see §2.5) and returns the previous value of the step multiplier.
    pattern LUA_GCSETSTEPMUL :: GCCode
    pattern $mLUA_GCSETSTEPMUL :: forall {r}. GCCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_GCSETSTEPMUL :: GCCode
    LUA_GCSETSTEPMUL = GCCode 7
    {-# LINE 314 "src/Lua/Constants.hsc" #-}

    -- | Returns a boolean that tells whether the collector is running
    -- (i.e., not stopped).
    pattern LUA_GCISRUNNING :: GCCode
    pattern $mLUA_GCISRUNNING :: forall {r}. GCCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_GCISRUNNING :: GCCode
    LUA_GCISRUNNING = GCCode 9
    {-# LINE 319 "src/Lua/Constants.hsc" #-}

    -- | Changes the collector to generational mode.
    pattern LUA_GCGEN :: GCCode
    pattern $mLUA_GCGEN :: forall {r}. GCCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_GCGEN :: GCCode
    LUA_GCGEN = GCCode 10
    {-# LINE 323 "src/Lua/Constants.hsc" #-}

    -- | Changes the collector to incremental mode.
    pattern LUA_GCINC :: GCCode
    pattern $mLUA_GCINC :: forall {r}. GCCode -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_GCINC :: GCCode
    LUA_GCINC = GCCode 11
    {-# LINE 327 "src/Lua/Constants.hsc" #-}

    --
    -- Special registry values
    --

    -- | The registry index that holds the global environment.
    pattern LUA_RIDX_GLOBALS :: Lua.Types.Integer
    pattern $mLUA_RIDX_GLOBALS :: forall {r}. Integer -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_RIDX_GLOBALS :: Integer
    LUA_RIDX_GLOBALS = 2
    {-# LINE 335 "src/Lua/Constants.hsc" #-}

    -- | Value signaling that no reference was created.
    pattern LUA_REFNIL :: CInt
    pattern $mLUA_REFNIL :: forall {r}. CInt -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_REFNIL :: CInt
    LUA_REFNIL = -2
    {-# LINE 339 "src/Lua/Constants.hsc" #-}

    -- | Value signaling that no reference was found.
    pattern LUA_NOREF :: CInt
    pattern $mLUA_NOREF :: forall {r}. CInt -> ((# #) -> r) -> ((# #) -> r) -> r
    $bLUA_NOREF :: CInt
    LUA_NOREF = -2
    {-# LINE 343 "src/Lua/Constants.hsc" #-}

    --
    -- Booleans
    --

    -- | Value which Lua usually uses as 'True'.
    pattern TRUE :: LuaBool
    pattern $mTRUE :: forall {r}. LuaBool -> ((# #) -> r) -> ((# #) -> r) -> r
    $bTRUE :: LuaBool
    TRUE = LuaBool 1

    -- | Value which Lua usually uses as 'False'.
    pattern FALSE :: LuaBool
    pattern $mFALSE :: forall {r}. LuaBool -> ((# #) -> r) -> ((# #) -> r) -> r
    $bFALSE :: LuaBool
    FALSE = LuaBool 0