Adapted to simplified VECTORISE pragmas
[packages/dph.git] / dph-lifted-vseg / Data / Array / Parallel / Prelude / Base.hs
1 {-# OPTIONS_GHC -fvectorise #-}
2
3 -- |This module sets up the basic vectorisation map for vectorising the DPH Prelude.
4 module Data.Array.Parallel.Prelude.Base
5 ( PArr
6 -- , (->), ()
7 , Bool(..)
8 , Ordering(..)
9 , Eq(..), Ord(..)
10 , Show
11 , Num(..)
12 )
13 where
14 import Data.Array.Parallel.Prim () -- dependency required by the vectoriser
15
16 import Data.Array.Parallel.PArr
17 import Data.Array.Parallel.PArray.PData.Base
18 import Data.Array.Parallel.Lifted.Closure
19
20
21 -- internal types
22 {-# VECTORISE type PArr = PArray #-}
23 {-# VECTORISE type PArray = PArray #-}
24 {-# VECTORISE SCALAR type (->) = (:->) #-}
25
26 -- vectorised versions of types from the standard Prelude
27 {-# VECTORISE SCALAR type () #-}
28 {-# VECTORISE SCALAR type Bool #-}
29 {-# VECTORISE SCALAR type Ordering #-}
30
31 -- FIXME: currently a fake definition to allow 'Integer' in vectorised classes
32 {-# VECTORISE SCALAR type Integer = Integer #-}
33
34 -- vectorised versions of type classes from the standard Prelude
35 {-# VECTORISE class Eq #-}
36 {-# VECTORISE class Ord #-}
37 {-# VECTORISE class Show #-} -- only to facilitate 'Num', no vectorised instances provided
38 {-# VECTORISE class Num #-}