content: -----------------------------------------------------------
  -- |
  -- Module      :  DBLayout
  -- Copyright   :  HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net
  -- License     :  BSD-style
  -- 
  -- Maintainer  :  haskelldb-users@lists.sourceforge.net
  -- Stability   :  experimental
  -- Portability :  non-portable
  -- 
  -- Exports every function needed by DBDirect generated 
  -- files
  --
  -- 
  -----------------------------------------------------------
  
  module Database.HaskellDB.DBLayout
    (module Database.HaskellDB.BoundedString
    , module Database.HaskellDB.DBSpec
    , CalendarTime, LocalTime
    , Expr, Table, Attr, baseTable
    , RecCons, RecNil, FieldTag, fieldName
    , hdbMakeEntry, mkAttr, ( # )
    , emptyTable) 
  
  where
  
  import Database.HaskellDB.HDBRec(Record, RecCons, RecNil, FieldTag
                                  , fieldName, ( # ))
  
  import Database.HaskellDB.BoundedString
  import System.Time (CalendarTime)
  import Data.Time.LocalTime (LocalTime)
  import Database.HaskellDB.Query (Expr, Table, Attr(..)
                                  , baseTable, attribute, (<<), emptyTable)
  import Database.HaskellDB.DBSpec
  import Database.HaskellDB.FieldType (FieldType(..))
  
  -- | Constructs a table entry from a field tag
  hdbMakeEntry :: FieldTag f =>
                f -- ^ Field tag
             -> Record (RecCons f (Expr a) RecNil)
  hdbMakeEntry f = undefined << attribute (fieldName f)
  
  -- | Make an 'Attr' for a field.
  mkAttr :: FieldTag f =>
           f -- ^ Field tag
          -> Attr f a
  mkAttr = Attr . fieldName