packages feed

multiplate 0.0.1 → 0.0.1.1

raw patch · 3 files changed

+30/−2 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

CHANGELOG view
@@ -1,2 +1,5 @@ New in version 0.0.1:  - eta expanding definition of traverseMFor for GHC 7 compatibility++New in version 0.0.1.1:+ - documenation of the Multiplate laws
Data/Generics/Multiplate.hs view
@@ -28,7 +28,11 @@ --                 } -- @ -- --- The names of the modules are based on Sebastian Fischer's Refactoring Uniplate: +-- Although this above is the original motivation behind multiplate,but you can make+-- any structure you want into a 'Multiplate' as long as you satisfy the two multiplate laws listed+-- below.+-- +-- The names of the functions in this module are based on Sebastian Fischer's Refactoring Uniplate:  -- <http://www-ps.informatik.uni-kiel.de/~sebf/projects/traversal.html> module Data.Generics.Multiplate where @@ -45,6 +49,27 @@ -- 'Projector' is the type of the projection functions of plates.  type Projector p a = forall f. p f -> a -> f a +-- | A 'Multiplate' is a constructor of kind @(* -> *) -> *@ operating on 'Applicative' functors+-- having functions 'multiplate' and 'mkPlate' that satisfy the following two laws:+-- +-- (1) @+-- 'multiplate' 'purePlate' = 'purePlate'+--   where+--     'purePlate' = 'mkPlate' (\\_ -> 'pure')+-- @+-- +-- (2) @+-- 'multiplate' ('composePlate' p1 p2) = 'composePlate' ('multiplate' p1) ('multiplate' p2)+--   where+--     'composePlate' p1 p2 = 'mkPlate' (\\proj a -> ('Compose' (proj p1 ``fmap`` proj p2 a)))+-- @+--+-- Note: By parametricity, it suffices for (1) to prove +-- +-- @+-- 'multiplate' ('mkPlate' (\\_ -> 'Identity')) = ('mkPlate' (\\_ -> 'Identity'))+-- @+--  class Multiplate p where   -- | This is the heart of the Multiplate library.  Given a plate of functions over some   -- applicative functor @f@, create a new plate that applies these functions to the children
multiplate.cabal view
@@ -1,5 +1,5 @@ Name:               multiplate-Version:            0.0.1+Version:            0.0.1.1 Cabal-Version:      >= 1.4 License:            MIT License-File:       LICENSE