pretty-types 0.2.1.0 → 0.2.2.0
raw patch · 4 files changed
+17/−1 lines, 4 filesdep +taggedPVP ok
version bump matches the API change (PVP)
Dependencies added: tagged
API changes (from Hackage documentation)
Files
- ChangeLog.md +4/−0
- pretty-types.cabal +3/−1
- spec/PrettyTypesSpec.hs +3/−0
- src/Data/Type/Pretty.hs +7/−0
ChangeLog.md view
@@ -1,3 +1,7 @@+## Version 0.2.2.0++* Added a ToPretty instance for 'Tagged'+ ## Version 0.2.1.0 * Added ToPretty instances for type level strings and numbers
pretty-types.cabal view
@@ -1,5 +1,5 @@ name: pretty-types-version: 0.2.1.0+version: 0.2.2.0 synopsis: A small pretty printing DSL for complex types. description: Please see README.md homepage: https://github.com/sheyll/pretty-types#readme@@ -22,6 +22,7 @@ exposed-modules: Data.Type.Pretty build-depends: base >= 4.9 && < 5 , mtl >= 2.2 && < 3+ , tagged >= 0.8 && < 1 default-language: Haskell2010 ghc-options: -Wall -funbox-strict-fields -fno-warn-unused-do-bind default-extensions: BangPatterns@@ -61,6 +62,7 @@ build-depends: base >= 4.9 && < 5 , hspec , pretty-types+ , tagged >= 0.8 && < 1 default-language: Haskell2010 default-extensions: BangPatterns , ConstraintKinds
spec/PrettyTypesSpec.hs view
@@ -8,6 +8,7 @@ import Data.Proxy import Data.Word import Data.Int+import Data.Tagged main :: IO () main = hspec spec@@ -143,6 +144,8 @@ `shouldBe` "foo\n bar1\n bar2\n bar3\n bar4" describe "ToPretty" $ do+ it "renders a 'Tagged'" $+ showPretty (PX :: PX (ToPretty (Tagged "foo" Word8))) `shouldBe` "Word8 (foo)" it "renders a type level symbol like PutStr" $ showPretty (PX :: PX (ToPretty "foo")) `shouldBe` showPretty (PX :: PX (PutStr "foo")) it "renders a type level natural like PutNat" $
src/Data/Type/Pretty.hs view
@@ -111,6 +111,7 @@ import Text.Printf import Data.Word import Data.Int+import Data.Tagged -- * Pretty Printing Types @@ -385,6 +386,12 @@ type family PrettyOften (n :: Nat) (doc :: PrettyType) :: PrettyType where PrettyOften 0 doc = 'PrettyEmpty PrettyOften n doc = doc <++> PrettyOften (n-1) doc++-- *** Pretty Printing 'Tagged' Values++-- | Pretty print a 'Tagged' value.+-- @since 0.2.2.0+type instance ToPretty (Tagged s b) = ToPretty b <+> PrettyParens (ToPretty s) -- * Basic Building Blocks