use a compatibility class
This commit is contained in:
parent
91ea0b0fca
commit
dbf53c31fb
@ -53,6 +53,11 @@ import qualified Data.ByteString as B
|
||||
import qualified Data.Text as T
|
||||
import qualified Data.Text.Lazy as TL
|
||||
|
||||
class BackendCompatible sup sub
|
||||
|
||||
instance BackendCompatible SqlBackend SqlBackend
|
||||
instance BackendCompatible SqlBackend SqlReadBackend
|
||||
instance BackendCompatible SqlBackend SqlWriteBackend
|
||||
|
||||
-- | Finally tagless representation of @esqueleto@'s EDSL.
|
||||
class (Functor query, Applicative query, Monad query) =>
|
||||
@ -72,12 +77,12 @@ class (Functor query, Applicative query, Monad query) =>
|
||||
-- @JOIN@.
|
||||
fromStart
|
||||
:: ( PersistEntity a
|
||||
, PersistEntityBackend a ~ backend )
|
||||
, BackendCompatible backend (PersistEntityBackend a) )
|
||||
=> query (expr (PreprocessedFrom (expr (Entity a))))
|
||||
-- | (Internal) Same as 'fromStart', but entity may be missing.
|
||||
fromStartMaybe
|
||||
:: ( PersistEntity a
|
||||
, PersistEntityBackend a ~ backend )
|
||||
, BackendCompatible backend (PersistEntityBackend a) )
|
||||
=> query (expr (PreprocessedFrom (expr (Maybe (Entity a)))))
|
||||
-- | (Internal) Do a @JOIN@.
|
||||
fromJoin
|
||||
@ -1041,13 +1046,13 @@ class Esqueleto query expr backend => FromPreprocess query expr backend a where
|
||||
|
||||
instance ( Esqueleto query expr backend
|
||||
, PersistEntity val
|
||||
, PersistEntityBackend val ~ backend
|
||||
, BackendCompatible backend (PersistEntityBackend val)
|
||||
) => FromPreprocess query expr backend (expr (Entity val)) where
|
||||
fromPreprocess = fromStart
|
||||
|
||||
instance ( Esqueleto query expr backend
|
||||
, PersistEntity val
|
||||
, PersistEntityBackend val ~ backend
|
||||
, BackendCompatible backend (PersistEntityBackend val)
|
||||
) => FromPreprocess query expr backend (expr (Maybe (Entity val))) where
|
||||
fromPreprocess = fromStartMaybe
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user