Это не , что сложно написать экземпляры ToJSON / FromJSON для сгенерированных типов, но все же, пока вы генерируете код, можете ли вы это добавить? Или есть простой способ сделать это как пользователь Yesod? (Я не слишком углубился в то, как работает TH ...)
Обновление:
Хорошо, мне нравится это предложение, но, скажем, мой постоянный тип - Пользователь. Если я использую
$(deriveJSON id ''User)
это дает
Exception when trying to run compile-time code:
Data.Aeson.TH.withType: Unsupported type: TySynD Model.User [] (AppT (ConT Model.UserGeneric) (ConT Database.Persist.GenericSql.Raw.SqlPersist))
Code: deriveJSON (id) 'User
очевидно, потому что это псевдоним. Но
$(deriveJSON id ''UserGeneric)
выходы
Kind mis-match
The first argument of `UserGeneric' should have kind `(* -> *)
-> *
-> *',
but `backend[i5XB]' has kind `*'
Возможно, у меня все еще неправильный тип, но я не могу найти достаточно информации о том, что генерирует Persistent, чтобы получить правильное заклинание.