{-# LANGUAGE ScopedTypeVariables #-} -- | Read instance for unboxed vectors. module Data.Vector.Unboxed.Read where import qualified Data.Vector.Unboxed as VU import qualified Text.Read.Lex as L import GHC.Show import Text.Read import Text.ParserCombinators.ReadP instance (VU.Unbox a, Read a) => Read (VU.Vector a) where readPrec = parens $ do L.Ident "fromList" <- lexP (vals :: [a]) <- readPrec lift $ skipSpaces lift $ string "::" lift $ skipSpaces lift $ string "Data.Vector.Unboxed.Vector" return $ VU.fromList vals readListPrec = readListPrecDefault readList = readListDefault