{-# LINE 1 "Magic/Types.hsc" #-}
{-  -*- Mode: haskell; -*-
Haskell magic Interface
Copyright (C) 2005 John Goerzen <jgoerzen@complete.org>

This code is under a 3-clause BSD license; see COPYING for details.
-}

{- |
   Module     : Magic.Types
   Copyright  : Copyright (C) 2005 John Goerzen
   License    : BSD

   Maintainer : John Goerzen,
   Maintainer : jgoerzen\@complete.org
   Stability  : provisional
   Portability: portable

Types for magic programs.

Written by John Goerzen, jgoerzen\@complete.org
-}

module Magic.Types(Magic,
                   MagicFlag(..))
where
import Foreign.Ptr
import Data.Word
import Data.Int
import Foreign.C.Types
import Foreign.ForeignPtr
import Magic.Data
import Magic.TypesLL



{- | Main Magic object type.

Magic objects are automatically closed (and memory freed) when they are
garbage-collected by Haskell.  There is no need to explicitly close them.
-}
type Magic = ForeignPtr CMagic