hw-mquery 0.1.0.3 → 0.2.0.0
raw patch · 16 files changed
+137/−137 lines, 16 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- HaskellWorks.Data.AtLeastSize: atLeastSize :: AtLeastSize a => a -> Int -> Bool
- HaskellWorks.Data.AtLeastSize: class AtLeastSize a
- HaskellWorks.Data.AtLeastSize: instance HaskellWorks.Data.AtLeastSize.AtLeastSize [a]
- HaskellWorks.Data.Entry: Entry :: k -> v -> Entry k v
- HaskellWorks.Data.Entry: data Entry k v
- HaskellWorks.Data.Entry: instance (Text.PrettyPrint.ANSI.Leijen.Internal.Pretty k, Text.PrettyPrint.ANSI.Leijen.Internal.Pretty v) => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.Entry.Entry k v)
- HaskellWorks.Data.MQuery: instance HaskellWorks.Data.ToBool.ToBool (HaskellWorks.Data.MQuery.MQuery a)
- HaskellWorks.Data.Micro: Micro :: a -> Micro a
- HaskellWorks.Data.Micro: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty a => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.Micro.Micro (Data.DList.DList a))
- HaskellWorks.Data.Micro: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty a => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.Micro.Micro [a])
- HaskellWorks.Data.Micro: newtype Micro a
- HaskellWorks.Data.Micro: prettyKvs :: Pretty (Micro a) => [a] -> Doc
- HaskellWorks.Data.Micro: prettyVs :: Pretty a => [a] -> Doc
- HaskellWorks.Data.Micro: putPretty :: Pretty a => a -> IO ()
- HaskellWorks.Data.Mini: Mini :: a -> Mini a
- HaskellWorks.Data.Mini: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.Micro.Micro a) => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.Mini.Mini [a])
- HaskellWorks.Data.Mini: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.Mini.Mini a) => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.Mini.Mini (Data.DList.DList a))
- HaskellWorks.Data.Mini: newtype Mini a
- HaskellWorks.Data.Row: Row :: MaxChars -> a -> Row a
- HaskellWorks.Data.Row: data Row a
- HaskellWorks.Data.Row: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty a => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.Row.Row (Data.DList.DList a))
- HaskellWorks.Data.Row: prettyRowOfString :: Show a => Row (DList a) -> Doc
- HaskellWorks.Data.Row: type MaxChars = Int
- HaskellWorks.Data.Shows: showKvs :: Show (Micro a) => [a] -> String -> String
- HaskellWorks.Data.Shows: showsVs :: Show a => [a] -> String -> String
- HaskellWorks.Data.ToBool: class ToBool a
- HaskellWorks.Data.ToBool: instance HaskellWorks.Data.ToBool.ToBool (Data.DList.DList a)
- HaskellWorks.Data.ToBool: instance HaskellWorks.Data.ToBool.ToBool GHC.Types.Bool
- HaskellWorks.Data.ToBool: instance HaskellWorks.Data.ToBool.ToBool [a]
- HaskellWorks.Data.ToBool: toBool :: ToBool a => a -> Bool
+ HaskellWorks.Data.MQuery: instance HaskellWorks.Data.MQuery.ToBool.ToBool (HaskellWorks.Data.MQuery.MQuery a)
+ HaskellWorks.Data.MQuery.AtLeastSize: atLeastSize :: AtLeastSize a => a -> Int -> Bool
+ HaskellWorks.Data.MQuery.AtLeastSize: class AtLeastSize a
+ HaskellWorks.Data.MQuery.AtLeastSize: instance HaskellWorks.Data.MQuery.AtLeastSize.AtLeastSize [a]
+ HaskellWorks.Data.MQuery.Entry: Entry :: k -> v -> Entry k v
+ HaskellWorks.Data.MQuery.Entry: data Entry k v
+ HaskellWorks.Data.MQuery.Entry: instance (Text.PrettyPrint.ANSI.Leijen.Internal.Pretty k, Text.PrettyPrint.ANSI.Leijen.Internal.Pretty v) => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Entry.Entry k v)
+ HaskellWorks.Data.MQuery.Micro: Micro :: a -> Micro a
+ HaskellWorks.Data.MQuery.Micro: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty a => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Micro.Micro (Data.DList.DList a))
+ HaskellWorks.Data.MQuery.Micro: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty a => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Micro.Micro [a])
+ HaskellWorks.Data.MQuery.Micro: newtype Micro a
+ HaskellWorks.Data.MQuery.Micro: prettyKvs :: Pretty (Micro a) => [a] -> Doc
+ HaskellWorks.Data.MQuery.Micro: prettyVs :: Pretty a => [a] -> Doc
+ HaskellWorks.Data.MQuery.Micro: putPretty :: Pretty a => a -> IO ()
+ HaskellWorks.Data.MQuery.Mini: Mini :: a -> Mini a
+ HaskellWorks.Data.MQuery.Mini: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Micro.Micro a) => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Mini.Mini [a])
+ HaskellWorks.Data.MQuery.Mini: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Mini.Mini a) => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Mini.Mini (Data.DList.DList a))
+ HaskellWorks.Data.MQuery.Mini: newtype Mini a
+ HaskellWorks.Data.MQuery.Row: Row :: MaxChars -> a -> Row a
+ HaskellWorks.Data.MQuery.Row: data Row a
+ HaskellWorks.Data.MQuery.Row: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty a => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Row.Row (Data.DList.DList a))
+ HaskellWorks.Data.MQuery.Row: prettyRowOfString :: Show a => Row (DList a) -> Doc
+ HaskellWorks.Data.MQuery.Row: type MaxChars = Int
+ HaskellWorks.Data.MQuery.Shows: showKvs :: Show (Micro a) => [a] -> String -> String
+ HaskellWorks.Data.MQuery.Shows: showsVs :: Show a => [a] -> String -> String
+ HaskellWorks.Data.MQuery.ToBool: class ToBool a
+ HaskellWorks.Data.MQuery.ToBool: instance HaskellWorks.Data.MQuery.ToBool.ToBool (Data.DList.DList a)
+ HaskellWorks.Data.MQuery.ToBool: instance HaskellWorks.Data.MQuery.ToBool.ToBool GHC.Types.Bool
+ HaskellWorks.Data.MQuery.ToBool: instance HaskellWorks.Data.MQuery.ToBool.ToBool [a]
+ HaskellWorks.Data.MQuery.ToBool: toBool :: ToBool a => a -> Bool
Files
- hw-mquery.cabal +8/−8
- src/HaskellWorks/Data/AtLeastSize.hs +0/−10
- src/HaskellWorks/Data/Entry.hs +0/−8
- src/HaskellWorks/Data/MQuery.hs +5/−5
- src/HaskellWorks/Data/MQuery/AtLeastSize.hs +10/−0
- src/HaskellWorks/Data/MQuery/Entry.hs +8/−0
- src/HaskellWorks/Data/MQuery/Micro.hs +34/−0
- src/HaskellWorks/Data/MQuery/Mini.hs +20/−0
- src/HaskellWorks/Data/MQuery/Row.hs +22/−0
- src/HaskellWorks/Data/MQuery/Shows.hs +13/−0
- src/HaskellWorks/Data/MQuery/ToBool.hs +17/−0
- src/HaskellWorks/Data/Micro.hs +0/−34
- src/HaskellWorks/Data/Mini.hs +0/−20
- src/HaskellWorks/Data/Row.hs +0/−22
- src/HaskellWorks/Data/Shows.hs +0/−13
- src/HaskellWorks/Data/ToBool.hs +0/−17
hw-mquery.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.2 name: hw-mquery-version: 0.1.0.3+version: 0.2.0.0 synopsis: Monadic query DSL description: Please see README.md category: Data@@ -36,14 +36,14 @@ src exposed-modules:- HaskellWorks.Data.AtLeastSize- HaskellWorks.Data.Entry- HaskellWorks.Data.Micro- HaskellWorks.Data.Mini HaskellWorks.Data.MQuery- HaskellWorks.Data.Row- HaskellWorks.Data.Shows- HaskellWorks.Data.ToBool+ HaskellWorks.Data.MQuery.AtLeastSize+ HaskellWorks.Data.MQuery.Entry+ HaskellWorks.Data.MQuery.Micro+ HaskellWorks.Data.MQuery.Mini+ HaskellWorks.Data.MQuery.Row+ HaskellWorks.Data.MQuery.Shows+ HaskellWorks.Data.MQuery.ToBool other-modules: Paths_hw_mquery autogen-modules:
− src/HaskellWorks/Data/AtLeastSize.hs
@@ -1,10 +0,0 @@--module HaskellWorks.Data.AtLeastSize where--class AtLeastSize a where- atLeastSize :: a -> Int -> Bool--instance AtLeastSize [a] where- atLeastSize _ 0 = True- atLeastSize (_:as) n | n > 0 = atLeastSize as (n - 1)- atLeastSize _ _ = False
− src/HaskellWorks/Data/Entry.hs
@@ -1,8 +0,0 @@-module HaskellWorks.Data.Entry where--import Text.PrettyPrint.ANSI.Leijen--data Entry k v = Entry k v--instance (Pretty k, Pretty v) => Pretty (Entry k v) where- pretty (Entry k v) = pretty k <> text ": " <> pretty v
src/HaskellWorks/Data/MQuery.hs view
@@ -9,12 +9,12 @@ import Control.Lens import Control.Monad import Data.List-import Data.Semigroup (Semigroup, (<>))+import Data.Semigroup (Semigroup, (<>)) import GHC.Base-import HaskellWorks.Data.Entry-import HaskellWorks.Data.Row-import HaskellWorks.Data.ToBool-import Text.PrettyPrint.ANSI.Leijen hiding ((<>))+import HaskellWorks.Data.MQuery.Entry+import HaskellWorks.Data.MQuery.Row+import HaskellWorks.Data.MQuery.ToBool+import Text.PrettyPrint.ANSI.Leijen hiding ((<>)) import qualified Data.DList as DL
+ src/HaskellWorks/Data/MQuery/AtLeastSize.hs view
@@ -0,0 +1,10 @@++module HaskellWorks.Data.MQuery.AtLeastSize where++class AtLeastSize a where+ atLeastSize :: a -> Int -> Bool++instance AtLeastSize [a] where+ atLeastSize _ 0 = True+ atLeastSize (_:as) n | n > 0 = atLeastSize as (n - 1)+ atLeastSize _ _ = False
+ src/HaskellWorks/Data/MQuery/Entry.hs view
@@ -0,0 +1,8 @@+module HaskellWorks.Data.MQuery.Entry where++import Text.PrettyPrint.ANSI.Leijen++data Entry k v = Entry k v++instance (Pretty k, Pretty v) => Pretty (Entry k v) where+ pretty (Entry k v) = pretty k <> text ": " <> pretty v
+ src/HaskellWorks/Data/MQuery/Micro.hs view
@@ -0,0 +1,34 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE ScopedTypeVariables #-}++module HaskellWorks.Data.MQuery.Micro where++import Text.PrettyPrint.ANSI.Leijen++import qualified Data.DList as DL++newtype Micro a = Micro a++prettyVs :: Pretty a => [a] -> Doc+prettyVs (kv:kvs) = pretty kv <> foldl (<>) empty ((\jv -> text ", " <> pretty jv) `map` kvs)+prettyVs [] = empty++putPretty :: Pretty a => a -> IO ()+putPretty a = putDoc (pretty a <> hardline)++prettyKvs :: Pretty (Micro a) => [a] -> Doc+prettyKvs (kv:kvs) = pretty (Micro kv) <> foldl (<>) empty ((\jv -> text ", " <> pretty (Micro jv)) `map` kvs)+prettyKvs [] = empty++instance Pretty a => Pretty (Micro [a]) where+ pretty (Micro xs) = case length xs of+ xsLen | xsLen == 0 -> text "[]"+ xsLen | xsLen <= 10 -> text "[" <> prettyVs xs <> text "]"+ _ -> text "[" <> prettyVs (take 10 xs) <> text ", ..]"++instance Pretty a => Pretty (Micro (DL.DList a)) where+ pretty (Micro dxs) = case DL.toList dxs of+ xs@(_:_:_:_:_:_:_:_:_:_:_:_:_) -> text "[" <> prettyVs (take 50 xs) <> text ", ..]"+ [] -> text "[]"+ xs -> text "[" <> prettyVs xs <> text "]"
+ src/HaskellWorks/Data/MQuery/Mini.hs view
@@ -0,0 +1,20 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}++module HaskellWorks.Data.MQuery.Mini where++import HaskellWorks.Data.MQuery.AtLeastSize+import HaskellWorks.Data.MQuery.Micro+import Text.PrettyPrint.ANSI.Leijen++import qualified Data.DList as DL++newtype Mini a = Mini a++instance Pretty (Micro a) => Pretty (Mini [a]) where+ pretty (Mini xs) | xs `atLeastSize` 11 = text "[" <> nest 2 (prettyVs (take 10 (Micro `map` xs))) <> text ", ..]"+ pretty (Mini xs) | xs `atLeastSize` 1 = text "[" <> nest 2 (prettyVs (take 10 (Micro `map` xs))) <> text "]"+ pretty (Mini _ ) = text "[]"++instance Pretty (Mini a) => Pretty (Mini (DL.DList a)) where+ pretty (Mini xs) = vcat (punctuate (text ",") ((pretty . Mini) `map` take 10 (DL.toList xs)))
+ src/HaskellWorks/Data/MQuery/Row.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}++module HaskellWorks.Data.MQuery.Row where++import Text.PrettyPrint.ANSI.Leijen++import qualified Data.DList as DL++type MaxChars = Int++data Row a = Row MaxChars a++instance Pretty a => Pretty (Row (DL.DList a)) where+ pretty (Row maxChars xs) = vcat (((bold . yellow) (text "==> ") <>) `map` prettyRows)+ where prettyRows :: [Doc]+ prettyRows = (\row -> text (take maxChars (displayS (renderCompact (pretty row)) []))) `map` DL.toList xs++prettyRowOfString :: Show a => Row (DL.DList a) -> Doc+prettyRowOfString (Row _ xs) = vcat (((bold . yellow) (text "==> ") <>) `map` prettyRows)+ where prettyRows :: [Doc]+ prettyRows = (text . show) `map` DL.toList xs
+ src/HaskellWorks/Data/MQuery/Shows.hs view
@@ -0,0 +1,13 @@+{-# LANGUAGE FlexibleContexts #-}++module HaskellWorks.Data.MQuery.Shows where++import HaskellWorks.Data.MQuery.Micro++showsVs :: Show a => [a] -> String -> String+showsVs (kv:kvs) = shows kv . foldl (.) id ((\jv -> (", " ++) . shows jv) `map` kvs)+showsVs [] = id++showKvs :: Show (Micro a) => [a] -> String -> String+showKvs (kv:kvs) = shows (Micro kv) . foldl (.) id ((\jv -> (", " ++) . shows (Micro jv)) `map` kvs)+showKvs [] = id
+ src/HaskellWorks/Data/MQuery/ToBool.hs view
@@ -0,0 +1,17 @@++module HaskellWorks.Data.MQuery.ToBool where++import qualified Data.DList as DL++class ToBool a where+ toBool :: a -> Bool++instance ToBool Bool where+ toBool = id++instance ToBool [a] where+ toBool (_:_) = True+ toBool _ = False++instance ToBool (DL.DList a) where+ toBool = toBool . DL.toList
− src/HaskellWorks/Data/Micro.hs
@@ -1,34 +0,0 @@-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE ScopedTypeVariables #-}--module HaskellWorks.Data.Micro where--import Text.PrettyPrint.ANSI.Leijen--import qualified Data.DList as DL--newtype Micro a = Micro a--prettyVs :: Pretty a => [a] -> Doc-prettyVs (kv:kvs) = pretty kv <> foldl (<>) empty ((\jv -> text ", " <> pretty jv) `map` kvs)-prettyVs [] = empty--putPretty :: Pretty a => a -> IO ()-putPretty a = putDoc (pretty a <> hardline)--prettyKvs :: Pretty (Micro a) => [a] -> Doc-prettyKvs (kv:kvs) = pretty (Micro kv) <> foldl (<>) empty ((\jv -> text ", " <> pretty (Micro jv)) `map` kvs)-prettyKvs [] = empty--instance Pretty a => Pretty (Micro [a]) where- pretty (Micro xs) = case length xs of- xsLen | xsLen == 0 -> text "[]"- xsLen | xsLen <= 10 -> text "[" <> prettyVs xs <> text "]"- _ -> text "[" <> prettyVs (take 10 xs) <> text ", ..]"--instance Pretty a => Pretty (Micro (DL.DList a)) where- pretty (Micro dxs) = case DL.toList dxs of- xs@(_:_:_:_:_:_:_:_:_:_:_:_:_) -> text "[" <> prettyVs (take 50 xs) <> text ", ..]"- [] -> text "[]"- xs -> text "[" <> prettyVs xs <> text "]"
− src/HaskellWorks/Data/Mini.hs
@@ -1,20 +0,0 @@-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE FlexibleInstances #-}--module HaskellWorks.Data.Mini where--import HaskellWorks.Data.AtLeastSize-import HaskellWorks.Data.Micro-import Text.PrettyPrint.ANSI.Leijen--import qualified Data.DList as DL--newtype Mini a = Mini a--instance Pretty (Micro a) => Pretty (Mini [a]) where- pretty (Mini xs) | xs `atLeastSize` 11 = text "[" <> nest 2 (prettyVs (take 10 (Micro `map` xs))) <> text ", ..]"- pretty (Mini xs) | xs `atLeastSize` 1 = text "[" <> nest 2 (prettyVs (take 10 (Micro `map` xs))) <> text "]"- pretty (Mini _ ) = text "[]"--instance Pretty (Mini a) => Pretty (Mini (DL.DList a)) where- pretty (Mini xs) = vcat (punctuate (text ",") ((pretty . Mini) `map` take 10 (DL.toList xs)))
− src/HaskellWorks/Data/Row.hs
@@ -1,22 +0,0 @@-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE FlexibleInstances #-}--module HaskellWorks.Data.Row where--import Text.PrettyPrint.ANSI.Leijen--import qualified Data.DList as DL--type MaxChars = Int--data Row a = Row MaxChars a--instance Pretty a => Pretty (Row (DL.DList a)) where- pretty (Row maxChars xs) = vcat (((bold . yellow) (text "==> ") <>) `map` prettyRows)- where prettyRows :: [Doc]- prettyRows = (\row -> text (take maxChars (displayS (renderCompact (pretty row)) []))) `map` DL.toList xs--prettyRowOfString :: Show a => Row (DL.DList a) -> Doc-prettyRowOfString (Row _ xs) = vcat (((bold . yellow) (text "==> ") <>) `map` prettyRows)- where prettyRows :: [Doc]- prettyRows = (text . show) `map` DL.toList xs
− src/HaskellWorks/Data/Shows.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE FlexibleContexts #-}--module HaskellWorks.Data.Shows where--import HaskellWorks.Data.Micro--showsVs :: Show a => [a] -> String -> String-showsVs (kv:kvs) = shows kv . foldl (.) id ((\jv -> (", " ++) . shows jv) `map` kvs)-showsVs [] = id--showKvs :: Show (Micro a) => [a] -> String -> String-showKvs (kv:kvs) = shows (Micro kv) . foldl (.) id ((\jv -> (", " ++) . shows (Micro jv)) `map` kvs)-showKvs [] = id
− src/HaskellWorks/Data/ToBool.hs
@@ -1,17 +0,0 @@--module HaskellWorks.Data.ToBool where--import qualified Data.DList as DL--class ToBool a where- toBool :: a -> Bool--instance ToBool Bool where- toBool = id--instance ToBool [a] where- toBool (_:_) = True- toBool _ = False--instance ToBool (DL.DList a) where- toBool = toBool . DL.toList