Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

26 lines (23 sloc) 0.572 kb
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE Rank2Types #-}
-- |
-- This is a small example of how to construct a projection for a third-party library like
-- @aeson@.
--
-- To test this:
--
-- > doctest Aeson.hs
module Aeson where
import Control.Lens
import Data.Aeson
import Data.ByteString.Lazy
-- |
-- >>> 5^.by aeson
-- "5"
-- >>> [1,2,3]^.by aeson
-- "[1,2,3]"
-- >>> aeson.both +~ 2 $ (2,3)^.by aeson
-- "[4,5]"
aeson, aeson' :: (FromJSON c, ToJSON d) => Projection ByteString ByteString c d
aeson = projection encode decode
aeson' = projection encode decode'
Jump to Line
Something went wrong with that request. Please try again.