data ActionData = AD { oldData :: (FromJSON j, ToJSON j) => j

                     , newData :: (FromJSON j, ToJSON j) => j}

instance ToJSON ActionData where

  toJSON (AD o n) = object [ "oldData" .= o

                           , "newData" .= n ]

instance FromJSON ActionData where

  parseJSON (Object v) = AD

    <$> v .: "oldData"

    <*> v .: "newData"

  parseJSON _ = mzero

I got when compile:
    No instance for (FromJSON (forall j. (FromJSON j, ToJSON j) => j))
      arising from a use of `.:'
    Possible fix:
      add an instance declaration for
      (FromJSON (forall j. (FromJSON j, ToJSON j) => j))
    In the second argument of `(<$>)', namely `v .: "oldData"'
    In the first argument of `(<*>)', namely `AD <$> v .: "oldData"'
    In the expression: AD <$> v .: "oldData" <*> v .: "newData"

-- 
竹密岂妨流水过
山高哪阻野云飞

And for G+, please use magiclouds#gmail.com.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to