Search code examples
haskellyesodpersist

Kind mismatch in YesodPersist instance declaration


Here is my project (original source is on FP Haskell Center, but I don't know how to make it publically available) https://github.com/geraldus/EsqueletoTest

There is YesodPersist instance declaration

instance YesodPersist App where
    type YesodPersistBackend App = SqlBackend -- line 19

    runDB action = do
        App pool <- getYesod
        runSqlPool action pool

And I have following error:

src/Foundation.hs@19:36-19:46 Kind mis-match
Expected kind `(* -> *) -> * -> *', but SqlBackend has kind * …
In the type `SqlBackend'
In the type synonym instance declaration for `YesodPersistBackend'
In the instance declaration for `YesodPersist App'

What's wrong?


Solution

  • It looks like you originally wrote the code using Persistent 2, and are now using Persistent 1.3. On 1.3, you'd need something like type YesodPersistBackend App = SqlPersistT.