>>> import Data.ByteString.Lazy as BL >>> myCsv <- BL.readFile "./data/simple.csv" >>> myCsv ^.. namedCsv . taking 2 rows . column @String "state_code" [ "NY" , "CA" ] >>> myCsv ^.. namedCsv . taking 2 rows . _NamedRecord @(M.Map String String) [ fromList [("population","19540000"), ("state_code","NY")] , fromList [("population","39560000"), ("state_code","CA")] ] -- For csv files without headers