-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Allow aeson data types to be used with lua.
--   
--   This package provides instances to push and receive any datatype
--   encodable as JSON to and from the Lua stack.
@package hslua-aeson
@version 1.0.0


-- | Glue to hslua for aeson values.
--   
--   This provides a <tt>StackValue</tt> instance for aeson's
--   <tt>Value</tt> type. The following conventions are used:
--   
--   <ul>
--   <li><tt>Null</tt> values are encoded as a special value (stored in the
--   registry field <tt>HSLUA_AESON_NULL</tt>). Using <tt>nil</tt> would
--   cause problems with null-containing arrays.</li>
--   <li>Objects are converted to tables in a straight-forward way.</li>
--   <li>Arrays are converted to lua tables. Array-length is included as
--   the value at index 0. This makes it possible to distinguish between
--   empty arrays and empty objects.</li>
--   <li>JSON numbers are converted to Lua numbers (usually doubles), which
--   can cause a loss of precision.</li>
--   </ul>
module Foreign.Lua.Aeson

-- | Push the value which represents JSON null values to the stack (a
--   specific empty table by default). Internally, this uses the contents
--   of the <tt>HSLUA_AESON_NULL</tt> registry field; modifying this field
--   is possible, but it must always be non-nil.
pushNull :: Lua ()
instance Foreign.Lua.Types.Pushable.Pushable Data.Scientific.Scientific
instance Foreign.Lua.Types.Peekable.Peekable Data.Scientific.Scientific
instance Foreign.Lua.Types.Pushable.Pushable a => Foreign.Lua.Types.Pushable.Pushable (Data.Vector.Vector a)
instance Foreign.Lua.Types.Peekable.Peekable a => Foreign.Lua.Types.Peekable.Peekable (Data.Vector.Vector a)
instance (GHC.Classes.Eq a, Data.Hashable.Class.Hashable a, Foreign.Lua.Types.Pushable.Pushable a, Foreign.Lua.Types.Pushable.Pushable b) => Foreign.Lua.Types.Pushable.Pushable (Data.HashMap.Base.HashMap a b)
instance (GHC.Classes.Eq a, Data.Hashable.Class.Hashable a, Foreign.Lua.Types.Peekable.Peekable a, Foreign.Lua.Types.Peekable.Peekable b) => Foreign.Lua.Types.Peekable.Peekable (Data.HashMap.Base.HashMap a b)
instance Foreign.Lua.Types.Pushable.Pushable Data.Aeson.Types.Internal.Value
instance Foreign.Lua.Types.Peekable.Peekable Data.Aeson.Types.Internal.Value
