I got something that could work, but yet again, `POSIXTime` can't be an instance of `Read`... There could be an intermediary type parsing `Text` (which derives `Read`) and then transferred into a public type that does not derive `Read` and with `POSIXTime`s. But that would be incredibly not annoying to have `Read`. `let my = Just "2¢"`

```haskell
withPOSIXTime :: String -> Value -> Parser POSIXTime
withPOSIXTime k v = case withMaybePOSIXTime k v of
    Just t -> return t
    _ -> fail "Could not parse POSIX time."
            
withMaybePOSIXTime :: String -> Value -> Parser (Maybe POSIXTime)
withMaybePOSIXTime k v = withText k (timeFromText) v 
    where timeFromText :: String -> Parser (Maybe POSIXTime)
          timeFromText text = do
            case parseTime defaultTimeLocale "%s" (unpack text) of
                Just sinceEpoch -> return $ Just sinceEpoch
                _ -> return Nothing

instance FromJSON SimpleTransaction where
    parseJSON (Object o) = SimpleTransaction <$> o .:  "account"
                                             <*> o .:? "address"
                                             <*> o .:  "category"
                                             <*> o .:? "fee"
                                             <*> o .:  "amount"
                                             <*> o .:? "confirmations"
                                             <*> o .:? "blockhash"
                                             <*> withMaybePOSIXTime "blockindex" o
                                             <*> o .:? "blocktime"
                                             <*> o .:? "txid"
                                             <*> o .:? "walletconflicts"
                                             <*> withPOSIXTime "time" o
                                             <*> withMaybePOSIXTime "timereceived" o
                                             <*> o .:? "comment"
                                             <*> o .:? "to"
                                             <*> o .:? "otheraccount"
```