-- Not all of these are needed, but better be safe than sorry :set -XConstraintKinds :set -XDataKinds :set -XFlexibleContexts :set -XGADTs :set -XOverloadedStrings :set -XPatternSynonyms :set -XQuasiQuotes :set -XScopedTypeVariables :set -XTemplateHaskell :set -XTypeOperators :set -XViewPatterns -- Not sure I'm going to use all these import qualified Control.Foldl as L import qualified Data.Foldable as F import Control.Applicative import Data.Proxy (Proxy(..)) import Lens.Family import Frames import Frames.CSV (readTableOpt) tableTypes "ARF" "arf.csv" arfStream = readTableOpt aRFParser "../data/arf.csv" arf <- inCoreAoS arfStream :: IO (Frame ARF) columnHeaders (Proxy :: Proxy ARF) mapM_ print (take 3 (F.toList (view sPECRESP <$> arf))) L.fold L.maximum (view sPECRESP <$> arf) showFields (frameRow arf 0) select (Proxy::Proxy [SPECRESP]) $ frameRow arf 0 sprespOnly :: ARF -> Record [SPECRESP] sprespOnly = rcast foo :: ARF -> Record [Specresp] foo = rcast