<commit_before>homepage: https://github.com/abhinav/pinch#readme
changelog-type: markdown
hash: 3aaf9c012dac770667a8a38537613d18b9299ac3885e2e64ac8d4a7271cb71ad
test-bench-deps:
  pinch: -any
  bytestring: ! '>=0.10 && <0.11'
  base: ! '>=4.7 && <5'
  unordered-containers: ! '>=0.2 && <0.3'
  hspec: ! '>=2.0'
  text: ! '>=1.2 && <1.3'
  containers: ! '>=0.5 && <0.6'
  QuickCheck: ! '>=2.5'
  hspec-discover: ! '>=2.1'
  vector: ! '>=0.10 && <0.12'
maintainer: <EMAIL>
synopsis: An alternative implementation of Thrift for Haskell.
changelog: ! "0.3.0.1 (2016-07-12)\n====================\n\n-   Compile on 32-bit
  systems.\n\n0.3.0.0 (2016-06-02)\n====================\n\n-   Add support for the
  Thrift Compact Protocol (#2).\n-   Add support for returning the leftover ByteString
  when parsing Thrift\n    payloads (#3).\n\n0.2.0.2 (2016-07-12)\n====================\n\n-
  \  Compile on 32-bit systems.\n\n0.2.0.1 (2016-05-23)\n====================\n\n-
  \  Build with GHC 8.\n\n0.2.0.0 (2015-12-27)\n====================\n\nBreaking changes:\n\n-
  \  `unpinch` no longer returns `Either String a`. Instead it returns a\n    `Parser
  a`.\n-   `Protocol.serialize*` methods no longer produce a `ByteString.Builder`
  and\n    the serialized length. Instead, they produce a custom `Builder` type.\n\nOther
  changes:\n\n-   Improve deserialization performance significantly by getting rid
  of\n    unnecessary calls to `Data.Typeable.{eqT, cast}`.\n-   Improve serialization
  performance by allocating the output buffer in one go\n    rather than using `ByteString.Builder`.\n-
  \  Improve serialization and deserialization performance further by changing\n    the
  intermediate representation of lists, sets, and maps.\n\n0.1.0.2 (2015-12-27)\n====================\n\n-
  \  Loosen `vector` version constraint.\n\n0.1.0.1 (2015-11-15)\n====================\n\n-
  \  Fixed recursion in C pre-processor expansion. This can break the build on\n    some
  systems.\n\n0.1.0.0 (2015-11-15)\n====================\n\n-   Initial release.\n\n"
basic-deps:
  bytestring: ! '>=0.10 && <0.11'
  base: ! '>=4.7 && <5'
  unordered-containers: ! '>=0.2 && <0.3'
  text: ! '>=1.2 && <1.3'
  array: ! '>=0.5'
  containers: ! '>=0.5 && <0.6'
  ghc-prim: -any
  hashable: ! '>=1.2 && <1.3'
  deepseq: ! '>=1.3 && <1.5'
  vector: ! '>=0.10 && <0.12'
all-versions:
- '0.1.0.1'
- '0.1.0.2'
- '0.2.0.0'
- '0.2.0.1'
- '0.2.0.2'
- '0.3.0.0'
- '0.3.0.1'
author: <NAME>
latest: '0.3.0.1'
description-type: markdown
description: ! "\n[![build-status]](https://travis-ci.org/abhinav/pinch)\n\n`pinch`
  aims to provide an alternative implementation of Apache Thrift for\nHaskell. The
  `pinch` library itself acts only as a serialization library. Types\nspecify their
  Thrift encoding by defining instances of the `Pinchable`\ntypeclass, which may be
  done by hand or automatically with the use of Generics.\n\n  [build-status]: https://travis-ci.org/abhinav/pinch.svg?branch=master\n\nHaddock
  documentation for this package is avilable on [Hackage] and [here].\n\n  [Hackage]:
  http://hackage.haskell.org/package/pinch\n  [here]: http://abhinavg.net/pinch/\n\nOverview\n--------\n\nTypes
  which can be encoded into Thrift payloads implement the `Pinchable`\ntypeclass.\n\nGiven
  the Thrift struct,\n\n```thrift\nstruct Person {\n    1: required string name\n
  \   2: optional i64 dateOfBirth\n}\n```\n\nYou can write a `Pinchable` instance
  like so,\n\n```haskell\ndata Person = Person { name :: Text, dateOfBirth :: Maybe
  Int64 }\n    deriving (Eq)\n\ninstance Pinchable Person where\n    type Tag Person
  = TStruct\n    -- The Tag tells the system that this represents a struct.\n\n    pinch
  (Person name dateOfBirth) =\n        struct [1 .= name, 2 ?= dateOfBirth]\n\n    unpinch
  value =\n        Person <$> value .:  1\n               <*> value .:? 2\n```\n\nBetter
  yet, you can drive an instance automatically.\n\n```haskell\n{-# LANGUAGE DeriveGeneric,
  DataKinds #-}\nimport GHC.Generics (Generic)\n\ndata Person = Person\n    { name
  \       :: Field 1 Text\n    , dateOfBirth :: Field 2 (Maybe Int64)\n    } deriving
  (Eq, Generic)\n\ninstance Pinchable Person\n```\n\nObjects can be serialized and
  deserialized using the `encode` and `decode`\nmethods. These methods accept a `Protocol`
  as an argument.\n\n```haskell\ndecode binaryProtocol (encode binaryProtocol person)
  == person\n```\n\nFor more information, check the documentation and the examples.\n\nSupported
  Protocols\n-------------------\n\nThe following Thrift protocols are supported:\n\n-
  \  Binary\n-   Compact\n\nCaveats\n-------\n\n-   There is no code generation or
  template haskell support yet so types from\n    the Thrift file will have to be
  translated by hand.\n\n"
license-name: BSD3
<commit_msg>Update from Hackage at 2017-01-13T07:33:52Z<commit_after>homepage: https://github.com/abhinav/pinch#readme
changelog-type: markdown
hash: 8b2361c0191d8761e0d002f6612b5ca6225e3ebdf54c7d8f36d522778937958f
test-bench-deps:
  pinch: -any
  bytestring: ! '>=0.10 && <0.11'
  base: ! '>=4.7 && <5'
  unordered-containers: ! '>=0.2 && <0.3'
  hspec: ! '>=2.0'
  text: ! '>=1.2 && <1.3'
  containers: ! '>=0.5 && <0.6'
  QuickCheck: ! '>=2.5'
  hspec-discover: ! '>=2.1'
  vector: ! '>=0.10 && <0.13'
maintainer: <EMAIL>
synopsis: An alternative implementation of Thrift for Haskell.
changelog: ! "0.3.0.2 (2017-01-12)\n====================\n\n-   Bump upper bound for
  vector (#11).\n\n\n0.3.0.1 (2016-07-12)\n====================\n\n-   Compile on
  32-bit systems.\n\n0.3.0.0 (2016-06-02)\n====================\n\n-   Add support
  for the Thrift Compact Protocol (#2).\n-   Add support for returning the leftover
  ByteString when parsing Thrift\n    payloads (#3).\n\n0.2.0.2 (2016-07-12)\n====================\n\n-
  \  Compile on 32-bit systems.\n\n0.2.0.1 (2016-05-23)\n====================\n\n-
  \  Build with GHC 8.\n\n0.2.0.0 (2015-12-27)\n====================\n\nBreaking changes:\n\n-
  \  `unpinch` no longer returns `Either String a`. Instead it returns a\n    `Parser
  a`.\n-   `Protocol.serialize*` methods no longer produce a `ByteString.Builder`
  and\n    the serialized length. Instead, they produce a custom `Builder` type.\n\nOther
  changes:\n\n-   Improve deserialization performance significantly by getting rid
  of\n    unnecessary calls to `Data.Typeable.{eqT, cast}`.\n-   Improve serialization
  performance by allocating the output buffer in one go\n    rather than using `ByteString.Builder`.\n-
  \  Improve serialization and deserialization performance further by changing\n    the
  intermediate representation of lists, sets, and maps.\n\n0.1.0.2 (2015-12-27)\n====================\n\n-
  \  Loosen `vector` version constraint.\n\n0.1.0.1 (2015-11-15)\n====================\n\n-
  \  Fixed recursion in C pre-processor expansion. This can break the build on\n    some
  systems.\n\n0.1.0.0 (2015-11-15)\n====================\n\n-   Initial release.\n\n"
basic-deps:
  bytestring: ! '>=0.10 && <0.11'
  base: ! '>=4.7 && <5'
  unordered-containers: ! '>=0.2 && <0.3'
  text: ! '>=1.2 && <1.3'
  array: ! '>=0.5'
  containers: ! '>=0.5 && <0.6'
  ghc-prim: -any
  hashable: ! '>=1.2 && <1.3'
  deepseq: ! '>=1.3 && <1.5'
  vector: ! '>=0.10 && <0.13'
all-versions:
- '0.1.0.1'
- '0.1.0.2'
- '0.2.0.0'
- '0.2.0.1'
- '0.2.0.2'
- '0.3.0.0'
- '0.3.0.1'
- '0.3.0.2'
author: <NAME>
latest: '0.3.0.2'
description-type: markdown
description: ! "\n[![build-status]](https://travis-ci.org/abhinav/pinch)\n\n`pinch`
  aims to provide an alternative implementation of Apache Thrift for\nHaskell. The
  `pinch` library itself acts only as a serialization library. Types\nspecify their
  Thrift encoding by defining instances of the `Pinchable`\ntypeclass, which may be
  done by hand or automatically with the use of Generics.\n\n  [build-status]: https://travis-ci.org/abhinav/pinch.svg?branch=master\n\nHaddock
  documentation for this package is avilable on [Hackage] and [here].\n\n  [Hackage]:
  http://hackage.haskell.org/package/pinch\n  [here]: http://abhinavg.net/pinch/\n\nOverview\n--------\n\nTypes
  which can be encoded into Thrift payloads implement the `Pinchable`\ntypeclass.\n\nGiven
  the Thrift struct,\n\n```thrift\nstruct Person {\n    1: required string name\n
  \   2: optional i64 dateOfBirth\n}\n```\n\nYou can write a `Pinchable` instance
  like so,\n\n```haskell\ndata Person = Person { name :: Text, dateOfBirth :: Maybe
  Int64 }\n    deriving (Eq)\n\ninstance Pinchable Person where\n    type Tag Person
  = TStruct\n    -- The Tag tells the system that this represents a struct.\n\n    pinch
  (Person name dateOfBirth) =\n        struct [1 .= name, 2 ?= dateOfBirth]\n\n    unpinch
  value =\n        Person <$> value .:  1\n               <*> value .:? 2\n```\n\nBetter
  yet, you can drive an instance automatically.\n\n```haskell\n{-# LANGUAGE DeriveGeneric,
  DataKinds #-}\nimport GHC.Generics (Generic)\n\ndata Person = Person\n    { name
  \       :: Field 1 Text\n    , dateOfBirth :: Field 2 (Maybe Int64)\n    } deriving
  (Eq, Generic)\n\ninstance Pinchable Person\n```\n\nObjects can be serialized and
  deserialized using the `encode` and `decode`\nmethods. These methods accept a `Protocol`
  as an argument.\n\n```haskell\ndecode binaryProtocol (encode binaryProtocol person)
  == person\n```\n\nFor more information, check the documentation and the examples.\n\nSupported
  Protocols\n-------------------\n\nThe following Thrift protocols are supported:\n\n-
  \  Binary\n-   Compact\n\nCaveats\n-------\n\n-   There is no code generation or
  template haskell support yet so types from\n    the Thrift file will have to be
  translated by hand.\n\n"
license-name: BSD3

{'fraction_non_alphanumeric': 0.19511193263503798, 'fraction_numerical': 0.05730129390018484, 'mean_word_length': 3.1637451902522447, 'pattern_counts': {'":': 0, '<': 39, '<?xml version=': 0, '>': 47, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 34, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '79454', 'n_tokens_mistral': 3867, 'n_tokens_neox': 3610, 'n_words': 920}