    {-# LANGUAGE CPP #-}

    #include "DPH_Header.h"

    import Data.Array.Parallel.Unlifted.Sequential
      hiding ((!:), (+:+), (>:), (^+:+^), toUSegd)
    import qualified Data.Array.Parallel.Unlifted.Sequential
      as U

    #include "DPH_Interface.h"

    class UA a => Elt a
    type Array = UArr
    type SArray = SUArr
    type Segd = USegd

    length = lengthU
    empty = emptyU
    replicate = replicateU
    replicateEach = replicateEachU
    repeat = repeatU
    (!:) = (U.!:)
    bpermute = bpermuteU
    (+:+) = (U.+:+)
    pack = packU
    combine = combineU
    map = mapU
    zip = zipU
    unzip = unzipU
    fsts = fstU
    zip3 = zip3U
    unzip3 = unzip3U
    zipWith = zipWithU
    zipWith3 = zipWith3U
    fold = foldU
    fold1 = fold1U
    sum = sumU
    scan = scanU
    indexed = indexedU
    enumFromTo = enumFromToU
    enumFromToEach = enumFromToEachU
    randoms = randomU
    randomRs = randomRU
    concat = concatSU
    (>:) = (U.>:)
    (^+:+^) = (U.^+:+^)
    length_s = lengthSU
    lengths_s = lengthsSU
    indices_s = indicesSU
    fold_s = foldSU
    fold1_s = fold1SU
    sum_s = sumSU
    indexed_s = indexedSU
    toSegd = U.toUSegd
    toList = fromU
    fromList = toU