Hello,
I writing a program that operates on some static data, currently saved in CSV files. Right now I parse the files at run time and then generate hashmap tables to connect the different data.
Since I'm only ever operating on static data, I'm wondering if I can generate module files that capture the records as a sum type. To access the fields of the records, I could then imagine functions that exhaustively map the constructors to the data.
Do any tools to generate .hs files from CSV or other formats exist? Insofar as this question has been asked before, the recommendation is "use Template Haskell", which makes sense, but is a less complete solution than I'm hoping for.
Here's example of what what would be generated in literal Haskell source:
-- input.csv
name, age, someValue
"abc", 1, 3.0
"xyz3", 99, -5.9
-- Input.hs
module Input where
data Row = R1 | R2
name :: Row -> String
name R1 = "abc"
name R2 = "xyz3"
age :: Row -> Integer
age R1 = 1
age R2 = 99
-- likewise for the function someValue
Thanks,
-M