{-# Language TemplateHaskell, CPP #-} module Data.Geo.OSGM02Tab ( (!) , PTPDD(..) , gb ) where import Data.Maybe import Data.Geo.Type import Data.Array.Unboxed ((!)) import qualified Codec.Compression.BZip as BZip import qualified Data.ByteString.Lazy.Char8 as L8 import Data.Binary (decode) -- import qualified Data.ByteString #if EMBEDED_DATA import Data.FileEmbed gb :: ArrDD gb = decodePTPDDFile . L8.fromStrict $ $(embedFile "data/GB.dat") #else import System.IO.Unsafe import Paths_geo_uk {-# NOINLINE gb #-} gb :: ArrDD gb = unsafePerformIO $ do fn <- getDataFileName "data/GB.dat" decodePTPDDFile <$> L8.readFile fn #endif decodePTPDDFile :: L8.ByteString -> ArrDD decodePTPDDFile = decode . BZip.decompress