{-|
Module      : Database.HaskRel.RDBMS
Description : A re-export of the modules that form the HList record based HaskRel library
Copyright   : © Thor Michael Støre, 2015
License     : GPL v2 without "any later version" clause
Maintainer  : thormichael át gmail døt com
Stability   : experimental

Exports the pertinent parts of HaskRel building on HList records. This gives most features of the relational algebra, relation variable support, HList CommonMain, as well as certain non-relational features such as ordering.
-}

-- TODO: Should call this something else than RDBMS seeing as it's so far just a DBMS + relational algebra
module Database.HaskRel.RDBMS (
  module Data.HList.CommonMain,
  -- * The relational model of database management: A subset thereof
  module Database.HaskRel.Relational.Definition,
  Relvar ( Relvar, relvarPath ), relvarType, readRelvar,
  module Database.HaskRel.Relational.Expression,
  module Database.HaskRel.Relational.Unicode,
  -- * Non-relational features
  module Database.HaskRel.Order,
  module Database.HaskRel.Support ) where

-- TODO: Only import relevant parts of HList. Variant, TIPs and TICs aren't required.
import Data.HList.CommonMain
import Data.Tagged (Tagged)

-- The relational model, and features defined together with it
import Database.HaskRel.Relational.Definition
import Database.HaskRel.Relational.Variable ( Relvar (Relvar), relvarPath, relvarType, readRelvar )
import Database.HaskRel.Relational.Expression
import Database.HaskRel.Relational.Unicode

-- Features not of the relational model
import Database.HaskRel.Order
import Database.HaskRel.Support