[Haskell-beginners] Tagged types
PICCA Frederic-Emmanuel
frederic-emmanuel.picca at synchrotron-soleil.fr
Thu Oct 11 11:34:20 UTC 2018
Hello, So I end-up for now with two singletons for my SomeDataCollection
So I red the Datacollection from an xml file (col) then I create the SomeDataCollection type depending on a bunch of values found in the Datacollection.
like this.
return $ if "ref-" `isPrefixOf` imagePrefix col
then case imageSuffix col of
(Just "cbf") -> SomeDataCollection SCaracterization SCbf (coerce col)
(Just "h5") -> SomeDataCollection SCaracterization SHdf5 (coerce col)
(Just _) -> SomeDataCollection SCaracterization SCbf (coerce col)
Nothing -> SomeDataCollection SCaracterization SCbf (coerce col)
else case imageSuffix col of
(Just "cbf") -> SomeDataCollection SCollect SCbf (coerce col)
(Just "h5") -> SomeDataCollection SCollect SHdf5 (coerce col)
(Just _) -> SomeDataCollection SCollect SCbf (coerce col)
Nothing -> SomeDataCollection SCollect SCbf (coerce col)
Now I would like to do something like
let t = if "ref-" `isPrefixOf` imagePrefix col
then SCaracterization
else SCollect
and then
return SomeDatacollection t f (coerce col)
But If I try to do this I have an error like this
src/ISPyB/Soap.hs:119:37-44: error:
• Couldn't match type ‘'Collect’ with ‘'Caracterization’
Expected type: SCollectType 'Caracterization
Actual type: SCollectType 'Collect
• In the expression: SCollect
In the expression:
if "ref-" `isPrefixOf` imagePrefix col then
SCaracterization
else
SCollect
In an equation for ‘t’:
t = if "ref-" `isPrefixOf` imagePrefix col then
SCaracterization
else
SCollect
how can I fix this and make the code better to read.
thanks
Fred
More information about the Beginners
mailing list