-- |
-- Module      : Foundation.Primitive
-- License     : BSD-style
-- Maintainer  : Vincent Hanquez <vincent@snarc.org>
-- Stability   : experimental
-- Portability : portable
--
--
{-# LANGUAGE FlexibleInstances #-}
module Foundation.Primitive
    ( PrimType(..)
    , PrimMonad(..)

    -- * endianess
    , ByteSwap
    , LE(..), toLE, fromLE
    , BE(..), toBE, fromBE

    -- * Integral convertion
    , IntegralUpsize(..)
    , IntegralDownsize(..)

    -- * Evaluation
    , NormalForm(..)
    , force
    , deepseq

    -- * These
    , These(..)

    -- * Block of memory
    , Block
    , MutableBlock

    -- * Ascii
    , Char7
    , AsciiString
    ) where

import Basement.PrimType
import Basement.Types.Char7
import Basement.Types.AsciiString
import Basement.Monad
import Basement.Endianness
import Basement.IntegralConv
import Basement.NormalForm
import Basement.These
import Basement.Block