
9 Nov
2010
9 Nov
'10
6:29 a.m.
Okay, I think I got it .. I went with Ozgur's example - data MyAction m = A1 (m Word8) | A2 (m Word16) a = A1 getWord8 b = A2 getWord16be listOfActions = [a,b,a] newtype Id a = Id a getAction :: MyAction Get -> Get (MyAction Id) getAction (A1 act) = A1 . Id <$> act getAction (A2 act) = A2 . Id <$> act getActions :: [MyAction Get] -> Get [MyAction Id] getActions = mapM getAction bs = BS.pack [1,0,2,4] abc = map toVal $ runGet (getActions listOfActions) bs toVal (A1 (Id v)) = fromIntegral v :: Int toVal (A2 (Id v)) = fromIntegral v :: Int Kindly let me know if this is exactly how you intended it to be used? Regards, Kashyap