content: {-# LANGUAGE Trustworthy #-}
  {-# LANGUAGE NoImplicitPrelude #-}
  {-# LANGUAGE ParallelArrays, MagicHash #-}
  {-# OPTIONS_GHC -funbox-strict-fields #-}
  {-# OPTIONS_HADDOCK hide #-}
  
  -----------------------------------------------------------------------------
  -- |
  -- Module      :  GHC.PArr
  -- Copyright   :  (c) 2001-2011 The Data Parallel Haskell team
  -- License     :  see libraries/base/LICENSE
  --
  -- Maintainer  :  cvs-ghc@haskell.org
  -- Stability   :  internal
  -- Portability :  non-portable (GHC Extensions)
  --
  -- BIG UGLY HACK: The desugarer special cases this module.  Despite the uses of '-XParallelArrays',
  --                the desugarer does not load 'Data.Array.Parallel' into its global state. (Hence,
  --                the present module may not use any other piece of '-XParallelArray' syntax.)
  --
  --                This will be cleaned up when we change the internal represention of '[::]' to not
  --                rely on a wired-in type constructor.
  
  module GHC.PArr where
  
  import GHC.Base
  
  -- Representation of parallel arrays
  --
  -- Vanilla representation of parallel Haskell based on standard GHC arrays that is used if the
  -- vectorised is /not/ used.
  --
  -- NB: This definition *must* be kept in sync with `TysWiredIn.parrTyCon'!
  --
  data [::] e = PArr !Int (Array# e)
  
  type PArr = [::]   -- this synonym is to get access to '[::]' without using the special syntax
  