-- | This module exports the most commonly used functions and datatypes.
--
-- See <http://github.com/lykahb/groundhog/blob/master/examples/>.
module Database.Groundhog
  ( -- * Core datatypes and functions
    PersistBackend (..),
    PersistBackendConn (..),
    Key,
    DefaultKey,
    AutoKey,
    Unique,
    UniqueMarker,
    BackendSpecific,
    extractUnique,
    Cond (..),
    Order (..),
    Selector (..),
    AutoKeyField (..),
    (~>),
    limitTo,
    offsetBy,
    orderBy,

    -- * Expressions
    (=.),
    (&&.),
    (||.),
    (==.),
    (/=.),
    (<.),
    (<=.),
    (>.),
    (>=.),
    isFieldNothing,
    liftExpr,
    toArith,

    -- * Migration
    createMigration,
    executeMigration,
    executeMigrationUnsafe,
    runMigration,
    runMigrationUnsafe,
    printMigration,
  )
where

import Database.Groundhog.Core hiding (projectStream, selectAllStream, selectStream)
import Database.Groundhog.Expression
import Database.Groundhog.Generic
import Database.Groundhog.Instances