Name:                   origami
Version:                0.0.5
Author:                 Eric Nedervold<nedervoldsoftware@gmail.com>
Maintainer:             Eric Nedervold<nedervoldsoftware@gmail.com>
License:                BSD3
License-File:           LICENSE
Copyright:              (c) 2015 Eric Nedervold
Stability:              alpha
Homepage:               http://github.com/nedervold/origami
Bug-Reports:            http://github.com/nedervold/origami/issues
-- Tested-With:            Haskell Platform 2014.2.0.0 for Mac OS X
Synopsis:               An un-SYB framework for transforming heterogenous
                        data through folds
Category:               Data
Description:

    The Origami package consists of a coding pattern for transforming
    heterogenously typed data and Template Haskell macros to support
    the pattern.  It operates in the same problem space as SYB, but
    generates the boilerplate for the user.
    .
    In the pattern, we focus on a specific set of types, the /fold/
    /family/.  For each constructor of each of those types, the user
    will define a function to "replace" the constructor when folding.
    .
    These functions are collected together into a single record.  (Its
    declaration is generated for the user.)  Collecting the functions
    together forces the typing of all the functions to remain
    consistent and facilitates code reuse.
    .
    For each datatype, a fold function is automatically generated that
    applies the fold record to values of that datatype.  It decomposes
    the value into parts according to its constructor, recursively
    applies the fold to the parts, then puts them back together using
    the replacement constructor function from the record.
    .
    As with SYB, Origami lets the user think on a higher-level of
    abstraction about data transformation and relieves her from the
    need to write boilerplate.
    .
    See the website for more information and examples.

Cabal-Version:          >= 1.10
Build-Type:             Simple
Extra-Source-Files:     Makefile
                      , changelog

Library
  Default-Language:     Haskell2010
  HS-Source-Dirs:       src
  GHC-Options:          -Wall
  Other-Extensions:     CPP
  Exposed-Modules:      Data.Origami
                      , Data.Origami.Internal.Build
                      , Data.Origami.Internal.Fold
                      , Data.Origami.Internal.FoldFamily
                      , Data.Origami.Internal.TH
                      , Data.Origami.Internal.Trifunctor
  Other-Modules:        Data.Origami.Internal.Pretty
                      , Data.Origami.Internal.THUtils
  Build-Depends:        base >= 4 && < 5
                      , bifunctors >=4
                      , containers >= 0.5
                      , lens >= 4
                      , mtl >= 2.1
                      , pretty >= 1.1
                      , template-haskell

Test-Suite test
  Type:                 exitcode-stdio-1.0
  Default-Language:     Haskell2010
  Hs-Source-Dirs:       tests
  Ghc-Options:          -Wall
  Main-Is:              Test.hs
  Other-Modules:        Data.OrigamiTests
                      , Data.Origami.Internal.BuildTests
                      , Data.Origami.Internal.TestFiles.Bar
                      , Data.Origami.Internal.TestFiles.Baz
                      , Data.Origami.Internal.TestFiles.Empty
                      , Data.Origami.Internal.TestFiles.Foo
                      , Data.Origami.Internal.TestFiles.Infix
                      , Data.Origami.Internal.TestFiles.Param
                      , Data.Origami.Internal.TestFiles.Qual
  Build-Depends:        base >=4 && < 5
                      , origami
                      , HUnit >= 1.2
                      , test-framework >= 0.8
                      , test-framework-hunit >= 0.3

Source-Repository head
  Type:                 git
  Location:             git://github.com/nedervold/origami.git