diff --git a/persistent/Database/Persist/Class/PersistEntity.hs b/persistent/Database/Persist/Class/PersistEntity.hs index c625342b9..7d26875b8 100644 --- a/persistent/Database/Persist/Class/PersistEntity.hs +++ b/persistent/Database/Persist/Class/PersistEntity.hs @@ -115,7 +115,7 @@ class ( PersistField (Key record), ToJSON (Key record), FromJSON (Key record) -- | Return meta-data for a given 'EntityField'. persistFieldDef :: EntityField record typ -> FieldDef -- | A meta-operation to get the database fields of a record. - toPersistFields :: record -> [SomePersistField] + toPersistFields :: record -> [PersistValue] -- | A lower-level operation to convert from database values to a Haskell record. fromPersistValues :: [PersistValue] -> Either Text record diff --git a/persistent/Database/Persist/Class/PersistField.hs b/persistent/Database/Persist/Class/PersistField.hs index a3acef72d..560df6e77 100644 --- a/persistent/Database/Persist/Class/PersistField.hs +++ b/persistent/Database/Persist/Class/PersistField.hs @@ -5,7 +5,6 @@ {-# LANGUAGE PatternGuards, DataKinds, TypeOperators, UndecidableInstances, GeneralizedNewtypeDeriving #-} module Database.Persist.Class.PersistField ( PersistField (..) - , SomePersistField (..) , getPersistMap , OverflowNatural(..) ) where @@ -452,11 +451,6 @@ getPersistMap (PersistByteString bs) getPersistMap PersistNull = Right [] getPersistMap x = Left $ fromPersistValueError "[(Text, PersistValue)]" "map, string, bytestring or null" x -data SomePersistField = forall a. (PersistField a) => SomePersistField a -instance PersistField SomePersistField where - toPersistValue (SomePersistField a) = toPersistValue a - fromPersistValue x = fmap SomePersistField (fromPersistValue x :: Either Text Text) - instance PersistField Checkmark where toPersistValue Active = PersistBool True toPersistValue Inactive = PersistNull diff --git a/persistent/Database/Persist/TH.hs b/persistent/Database/Persist/TH.hs index fe0dc510d..43898173e 100644 --- a/persistent/Database/Persist/TH.hs +++ b/persistent/Database/Persist/TH.hs @@ -1294,7 +1294,7 @@ mkToPersistFields mps ed = do xs <- sequence $ replicate fieldCount $ newName "x" let name = mkEntityDefName ed pat = conp name $ fmap VarP xs - sp <- [|SomePersistField|] + sp <- [|toPersistValue|] let bod = ListE $ fmap (AppE sp . VarE) xs return $ normalClause [pat] bod @@ -1303,13 +1303,13 @@ mkToPersistFields mps ed = do goSum :: UnboundFieldDef -> Int -> Q Clause goSum fieldDef idx = do let name = sumConstrName mps ed fieldDef - enull <- [|SomePersistField PersistNull|] + enull <- [|PersistNull|] let beforeCount = idx - 1 afterCount = fieldCount - idx before = replicate beforeCount enull after = replicate afterCount enull x <- newName "x" - sp <- [|SomePersistField|] + sp <- [|toPersistValue|] let body = ListE $ mconcat [ before , [sp `AppE` VarE x] diff --git a/persistent/Database/Persist/Types.hs b/persistent/Database/Persist/Types.hs index d139d1cb6..0af5c404b 100644 --- a/persistent/Database/Persist/Types.hs +++ b/persistent/Database/Persist/Types.hs @@ -24,7 +24,6 @@ module Database.Persist.Types -- database and Haskell types. , module Database.Persist.PersistValue -- * Other Useful Stuff - , SomePersistField (..) , Update (..) , BackendSpecificUpdate , SelectOpt (..) diff --git a/persistent/test/Database/Persist/TH/MigrationOnlySpec.hs b/persistent/test/Database/Persist/TH/MigrationOnlySpec.hs index bc1ff419f..50858bd7c 100644 --- a/persistent/test/Database/Persist/TH/MigrationOnlySpec.hs +++ b/persistent/test/Database/Persist/TH/MigrationOnlySpec.hs @@ -55,7 +55,7 @@ spec = describe "MigrationOnlySpec" $ do it "should have one field" $ do map toPersistValue (toPersistFields (HasMigrationOnly "asdf")) `shouldBe` - map toPersistValue [SomePersistField ("asdf" :: Text)] + [PersistText ("asdf" :: Text)] describe "fromPersistValues" $ do it "should work with only item in list" $ do fromPersistValues [PersistText "Hello"]