{-# OPTIONS_GHC -Wno-dodgy-exports #-}
{-# OPTIONS_GHC -Wno-unused-imports #-}
{-# OPTIONS_HADDOCK not-home #-}

{- |
Common elements from the rest of the Haskell ecosystem. This is mostly about
re-exports. There are numerous types and functions that are more or less
assumed to be in scope when you're doing much of anything in Haskell; this
module is a convenience to pull in the ones we rely on for the rest of this
library.

You can just import this directly:

@
import "Core.System"
@

as there's no particular benefit to cherry-picking the various sub-modules.
-}
module Core.System
    ( -- * Base libraries

      -- |
      -- Re-exports from foundational libraries supplied by the compiler runtime,
      -- or from re-implementations of those areas.
        module Core.System.Base

      -- * External dependencies

      -- |
      -- Dependencies from libraries outside the traditional ecosystem of Haskell.
      -- These are typically special cases or custom re-implementations of things
      -- which are maintained either by ourselves or people we are in regular
      -- contact with.
    , module Core.System.External

      -- * Pretty Printing

      -- |
      -- When using the Render typeclass from "Core.Text.Utilities" you are
      -- presented with the @Doc a@ type for accumulating a \"document\" to be
      -- pretty printed. There are a large family of combinators used when doing
      -- this. For convenience they are exposed here.
    , module Core.System.Pretty
    ) where

import Core.System.Base
import Core.System.External
import Core.System.Pretty