<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:10px">Hi Folks,<br style="" class=""><br style="" class="">Here's a problem that's frustrating me:<br style="" class=""><br style="" class=""><br style="" class="">I have defined a parametrized record type which looks like this:<br style="" class=""><br style="" class="">data Job a = Job<br style="" class=""> { jobID :: String<br style="" class=""> , jobName :: String<br style="" class=""> , jobTable :: String<br style="" class=""> , jobSource :: IO [a]<br style="" class=""> , jobProcessors :: [a -> a]<br style="" class=""> }<br style="" class=""><br style="" class="">where a is a data model type that maps on to a database table, for example:<br style="" class=""><br style="" class="">data Person = Person<br style="" class=""> { name :: String<br style="" class=""> , age :: Int<br style="" class=""> } deriving (Show)<br style="" class=""><br style="" class="">data Car = Car<br style="" class=""> { brand :: String<br style="" class=""> , value :: Double<br style="" class=""> , year :: Int<br style="" class=""> } deriving (Show)<br style="" class=""><br style="" class="">I would like to define a higher-level record type which contains,<br style="" class="">for configuration purposes, a certain set of jobs for execution. Let's <br style="" class="">say we call it a JobSet and which could possibly look like this:<br style="" class=""><br style="" class="">data JobSet = JobSet<br style="" class=""> { jobsetID :: String<br style="" class=""> , jobsetName :: String<br style="" class=""> , jobs :: [Job] <-- yes I know this is not legal<br style="" class=""> }<br style="" class=""><br style="" class="">Is there a legal haskell way to achieve the above objective without<br style="" class="">having to do something like this which hardcodes the model type into the <br style="" class="">jobset schema?<br style="" class=""><br style="" class="">data JobSet = JobSet<br style="" class=""> { jobsetID :: String<br style="" class=""> , jobsetName :: String<br style="" class=""> , personJobs :: [Job Person]<br style="" class=""> , carJobs :: [Job Car]<br style="" class=""> }<br style="" class=""><br style="" class=""><br style="" class=""><br style="" class="">Many thanks for any enlightenment on this front.<br style="" class=""><br style="" class="">Alia<div></div></div></body></html>