packages feed

focus-1.0.3.1: focus.cabal

cabal-version: 3.0
name:          focus
version:       1.0.3.1
synopsis:
  A general abstraction for manipulating elements of container data structures

description:
  An API for construction of free-form strategies of access and manipulation of 
  elements of arbitrary data structures.
  It allows to implement efficient composite patterns, e.g., 
  a simultaneous update and lookup of an element, 
  and even more complex things.
  Strategies are meant to be interpreted by the host data structure libraries.
  Thus they allow to implement all access and modification patterns of
  a data structure with just a single function,
  which interprets strategies.
  This library provides pure and monadic interfaces,
  so it supports both immutable and mutable data structures.

category:      Containers, Data
homepage:      https://github.com/nikita-volkov/focus
bug-reports:   https://github.com/nikita-volkov/focus/issues
author:        Nikita Volkov <nikita.y.volkov@mail.ru>
maintainer:    Nikita Volkov <nikita.y.volkov@mail.ru>
copyright:     (c) 2014, Nikita Volkov
license:       MIT
license-file:  LICENSE

source-repository head
  type:     git
  location: git://github.com/nikita-volkov/focus.git

common language-settings
  default-extensions:
    NoImplicitPrelude
    NoMonomorphismRestriction
    ApplicativeDo
    BangPatterns
    BinaryLiterals
    BlockArguments
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    DerivingVia
    DuplicateRecordFields
    EmptyDataDecls
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    GADTs
    GeneralizedNewtypeDeriving
    HexFloatLiterals
    LambdaCase
    LiberalTypeSynonyms
    MultiParamTypeClasses
    MultiWayIf
    NumericUnderscores
    OverloadedLabels
    OverloadedStrings
    ParallelListComp
    PatternGuards
    PatternSynonyms
    QuasiQuotes
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    StrictData
    TemplateHaskell
    TupleSections
    TypeApplications
    TypeFamilies
    TypeOperators
    UndecidableInstances
    ViewPatterns

  default-language:   Haskell2010

library
  import:          language-settings
  hs-source-dirs:  library
  exposed-modules: Focus
  other-modules:   Focus.Prelude
  build-depends:
    , base >=4.11 && <5
    , transformers >=0.5 && <0.7

test-suite test
  import:         language-settings
  type:           exitcode-stdio-1.0
  hs-source-dirs: test
  main-is:        Main.hs
  build-depends:
    , focus
    , rerebase <2
    , tasty >=0.12 && <2
    , tasty-hunit >=0.9 && <0.11