module Sqel.Data.SqlFragment where import qualified Exon import Sqel.Data.Sql (ToSql (toSql)) newtype CommaSep a = CommaSep { forall a. CommaSep a -> a unCommaSep :: a } deriving stock (CommaSep a -> CommaSep a -> Bool forall a. Eq a => CommaSep a -> CommaSep a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CommaSep a -> CommaSep a -> Bool $c/= :: forall a. Eq a => CommaSep a -> CommaSep a -> Bool == :: CommaSep a -> CommaSep a -> Bool $c== :: forall a. Eq a => CommaSep a -> CommaSep a -> Bool Eq, Int -> CommaSep a -> ShowS forall a. Show a => Int -> CommaSep a -> ShowS forall a. Show a => [CommaSep a] -> ShowS forall a. Show a => CommaSep a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CommaSep a] -> ShowS $cshowList :: forall a. Show a => [CommaSep a] -> ShowS show :: CommaSep a -> String $cshow :: forall a. Show a => CommaSep a -> String showsPrec :: Int -> CommaSep a -> ShowS $cshowsPrec :: forall a. Show a => Int -> CommaSep a -> ShowS Show, forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (CommaSep a) x -> CommaSep a forall a x. CommaSep a -> Rep (CommaSep a) x $cto :: forall a x. Rep (CommaSep a) x -> CommaSep a $cfrom :: forall a x. CommaSep a -> Rep (CommaSep a) x Generic) instance ToSql a => ToSql (CommaSep [a]) where toSql :: CommaSep [a] -> Sql toSql (CommaSep [a] a) = forall a (t :: * -> *). (Monoid a, Foldable t) => a -> t a -> a Exon.intercalate Sql ", " (forall a. ToSql a => a -> Sql toSql forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> [a] a) newtype Delete a = Delete { forall a. Delete a -> a unDelete :: a } deriving stock (Delete a -> Delete a -> Bool forall a. Eq a => Delete a -> Delete a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Delete a -> Delete a -> Bool $c/= :: forall a. Eq a => Delete a -> Delete a -> Bool == :: Delete a -> Delete a -> Bool $c== :: forall a. Eq a => Delete a -> Delete a -> Bool Eq, Int -> Delete a -> ShowS forall a. Show a => Int -> Delete a -> ShowS forall a. Show a => [Delete a] -> ShowS forall a. Show a => Delete a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Delete a] -> ShowS $cshowList :: forall a. Show a => [Delete a] -> ShowS show :: Delete a -> String $cshow :: forall a. Show a => Delete a -> String showsPrec :: Int -> Delete a -> ShowS $cshowsPrec :: forall a. Show a => Int -> Delete a -> ShowS Show, forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Delete a) x -> Delete a forall a x. Delete a -> Rep (Delete a) x $cto :: forall a x. Rep (Delete a) x -> Delete a $cfrom :: forall a x. Delete a -> Rep (Delete a) x Generic) newtype From a = From { forall a. From a -> a unFrom :: a } deriving stock (From a -> From a -> Bool forall a. Eq a => From a -> From a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: From a -> From a -> Bool $c/= :: forall a. Eq a => From a -> From a -> Bool == :: From a -> From a -> Bool $c== :: forall a. Eq a => From a -> From a -> Bool Eq, Int -> From a -> ShowS forall a. Show a => Int -> From a -> ShowS forall a. Show a => [From a] -> ShowS forall a. Show a => From a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [From a] -> ShowS $cshowList :: forall a. Show a => [From a] -> ShowS show :: From a -> String $cshow :: forall a. Show a => From a -> String showsPrec :: Int -> From a -> ShowS $cshowsPrec :: forall a. Show a => Int -> From a -> ShowS Show, forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (From a) x -> From a forall a x. From a -> Rep (From a) x $cto :: forall a x. Rep (From a) x -> From a $cfrom :: forall a x. From a -> Rep (From a) x Generic) newtype Insert a = Insert { forall a. Insert a -> a unInsert :: a } deriving stock (Insert a -> Insert a -> Bool forall a. Eq a => Insert a -> Insert a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Insert a -> Insert a -> Bool $c/= :: forall a. Eq a => Insert a -> Insert a -> Bool == :: Insert a -> Insert a -> Bool $c== :: forall a. Eq a => Insert a -> Insert a -> Bool Eq, Int -> Insert a -> ShowS forall a. Show a => Int -> Insert a -> ShowS forall a. Show a => [Insert a] -> ShowS forall a. Show a => Insert a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Insert a] -> ShowS $cshowList :: forall a. Show a => [Insert a] -> ShowS show :: Insert a -> String $cshow :: forall a. Show a => Insert a -> String showsPrec :: Int -> Insert a -> ShowS $cshowsPrec :: forall a. Show a => Int -> Insert a -> ShowS Show, forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Insert a) x -> Insert a forall a x. Insert a -> Rep (Insert a) x $cto :: forall a x. Rep (Insert a) x -> Insert a $cfrom :: forall a x. Insert a -> Rep (Insert a) x Generic) newtype Into a = Into { forall a. Into a -> a unInto :: a } deriving stock (Into a -> Into a -> Bool forall a. Eq a => Into a -> Into a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Into a -> Into a -> Bool $c/= :: forall a. Eq a => Into a -> Into a -> Bool == :: Into a -> Into a -> Bool $c== :: forall a. Eq a => Into a -> Into a -> Bool Eq, Int -> Into a -> ShowS forall a. Show a => Int -> Into a -> ShowS forall a. Show a => [Into a] -> ShowS forall a. Show a => Into a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Into a] -> ShowS $cshowList :: forall a. Show a => [Into a] -> ShowS show :: Into a -> String $cshow :: forall a. Show a => Into a -> String showsPrec :: Int -> Into a -> ShowS $cshowsPrec :: forall a. Show a => Int -> Into a -> ShowS Show, forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Into a) x -> Into a forall a x. Into a -> Rep (Into a) x $cto :: forall a x. Rep (Into a) x -> Into a $cfrom :: forall a x. Into a -> Rep (Into a) x Generic) newtype Returning a = Returning { forall a. Returning a -> a unReturning :: a } deriving stock (Returning a -> Returning a -> Bool forall a. Eq a => Returning a -> Returning a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Returning a -> Returning a -> Bool $c/= :: forall a. Eq a => Returning a -> Returning a -> Bool == :: Returning a -> Returning a -> Bool $c== :: forall a. Eq a => Returning a -> Returning a -> Bool Eq, Int -> Returning a -> ShowS forall a. Show a => Int -> Returning a -> ShowS forall a. Show a => [Returning a] -> ShowS forall a. Show a => Returning a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Returning a] -> ShowS $cshowList :: forall a. Show a => [Returning a] -> ShowS show :: Returning a -> String $cshow :: forall a. Show a => Returning a -> String showsPrec :: Int -> Returning a -> ShowS $cshowsPrec :: forall a. Show a => Int -> Returning a -> ShowS Show, forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Returning a) x -> Returning a forall a x. Returning a -> Rep (Returning a) x $cto :: forall a x. Rep (Returning a) x -> Returning a $cfrom :: forall a x. Returning a -> Rep (Returning a) x Generic) newtype Select a = Select { forall a. Select a -> a unSelect :: a } deriving stock (Select a -> Select a -> Bool forall a. Eq a => Select a -> Select a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Select a -> Select a -> Bool $c/= :: forall a. Eq a => Select a -> Select a -> Bool == :: Select a -> Select a -> Bool $c== :: forall a. Eq a => Select a -> Select a -> Bool Eq, Int -> Select a -> ShowS forall a. Show a => Int -> Select a -> ShowS forall a. Show a => [Select a] -> ShowS forall a. Show a => Select a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Select a] -> ShowS $cshowList :: forall a. Show a => [Select a] -> ShowS show :: Select a -> String $cshow :: forall a. Show a => Select a -> String showsPrec :: Int -> Select a -> ShowS $cshowsPrec :: forall a. Show a => Int -> Select a -> ShowS Show, forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Select a) x -> Select a forall a x. Select a -> Rep (Select a) x $cto :: forall a x. Rep (Select a) x -> Select a $cfrom :: forall a x. Select a -> Rep (Select a) x Generic) newtype SelectQuery a = SelectQuery { forall a. SelectQuery a -> a unSelectQuery :: a } deriving stock (SelectQuery a -> SelectQuery a -> Bool forall a. Eq a => SelectQuery a -> SelectQuery a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: SelectQuery a -> SelectQuery a -> Bool $c/= :: forall a. Eq a => SelectQuery a -> SelectQuery a -> Bool == :: SelectQuery a -> SelectQuery a -> Bool $c== :: forall a. Eq a => SelectQuery a -> SelectQuery a -> Bool Eq, Int -> SelectQuery a -> ShowS forall a. Show a => Int -> SelectQuery a -> ShowS forall a. Show a => [SelectQuery a] -> ShowS forall a. Show a => SelectQuery a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [SelectQuery a] -> ShowS $cshowList :: forall a. Show a => [SelectQuery a] -> ShowS show :: SelectQuery a -> String $cshow :: forall a. Show a => SelectQuery a -> String showsPrec :: Int -> SelectQuery a -> ShowS $cshowsPrec :: forall a. Show a => Int -> SelectQuery a -> ShowS Show, forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (SelectQuery a) x -> SelectQuery a forall a x. SelectQuery a -> Rep (SelectQuery a) x $cto :: forall a x. Rep (SelectQuery a) x -> SelectQuery a $cfrom :: forall a x. SelectQuery a -> Rep (SelectQuery a) x Generic) newtype Update a = Update { forall a. Update a -> a unUpdate :: a } deriving stock (Update a -> Update a -> Bool forall a. Eq a => Update a -> Update a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Update a -> Update a -> Bool $c/= :: forall a. Eq a => Update a -> Update a -> Bool == :: Update a -> Update a -> Bool $c== :: forall a. Eq a => Update a -> Update a -> Bool Eq, Int -> Update a -> ShowS forall a. Show a => Int -> Update a -> ShowS forall a. Show a => [Update a] -> ShowS forall a. Show a => Update a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Update a] -> ShowS $cshowList :: forall a. Show a => [Update a] -> ShowS show :: Update a -> String $cshow :: forall a. Show a => Update a -> String showsPrec :: Int -> Update a -> ShowS $cshowsPrec :: forall a. Show a => Int -> Update a -> ShowS Show, forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Update a) x -> Update a forall a x. Update a -> Rep (Update a) x $cto :: forall a x. Rep (Update a) x -> Update a $cfrom :: forall a x. Update a -> Rep (Update a) x Generic) newtype Create a = Create { forall a. Create a -> a unSelect :: a } deriving stock (Create a -> Create a -> Bool forall a. Eq a => Create a -> Create a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Create a -> Create a -> Bool $c/= :: forall a. Eq a => Create a -> Create a -> Bool == :: Create a -> Create a -> Bool $c== :: forall a. Eq a => Create a -> Create a -> Bool Eq, Int -> Create a -> ShowS forall a. Show a => Int -> Create a -> ShowS forall a. Show a => [Create a] -> ShowS forall a. Show a => Create a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Create a] -> ShowS $cshowList :: forall a. Show a => [Create a] -> ShowS show :: Create a -> String $cshow :: forall a. Show a => Create a -> String showsPrec :: Int -> Create a -> ShowS $cshowsPrec :: forall a. Show a => Int -> Create a -> ShowS Show, forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Create a) x -> Create a forall a x. Create a -> Rep (Create a) x $cto :: forall a x. Rep (Create a) x -> Create a $cfrom :: forall a x. Create a -> Rep (Create a) x Generic)