packages feed

robin-hood-profit-0.0.2: robin-hood-profit.cabal

cabal-version: 3.0
name:          robin-hood-profit
version:       0.0.2
synopsis:      Calculate per instrument profit from Robin-Hood activity report
description:
  The tool has a command line interface. It generates quarter profit
  reports out of Robin-Hood activity reports
  available in the CSV format. Quatities from such reports are important
  for estimating quarter prepayment to IRS during
  current tax year.  According to IRS guidline if you postope pay till
  next tax year (i.e Jan-Apr) and amount you owe is greater than $1k
  you may have to pay a penalty.

  In general any quarter report requires sequential processing of all
  history (shares might be bought at one year and sold a decade later)
  since a Robin-Hood account establishment preceding the target
  quater. This data aspect accents algorithm implementation on memory
  efficiency and throughput.

  See Readme file for details.

homepage:      http://github.com/yaitskov/RobinHood-pr0fit
license:       BSD-3-Clause
author:        Daniil Iaitskov
maintainer:    dyaitskov@gmail.com
copyright:     Daniil Iaitkov 2025
category:      System
build-type:    Simple
bug-reports:   https://github.com/yaitskov/RobinHood-pr0fit/issues
extra-doc-files:
  changelog.md
tested-with:
        GHC == { 9.10.1, 9.12.2 }

source-repository head
  type:
    git
  location:
    https://github.com/yaitskov/RobinHood-pr0fit.git

common base
  default-language: Haskell2010
  ghc-options: -Wall
  build-depends:
    , attoparsec-isotropic < 1
    , base >=4.21 && <5
    , relude < 2
  default-extensions:
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveDataTypeable
    DeriveGeneric
    FlexibleContexts
    FlexibleInstances
    LambdaCase
    MultiParamTypeClasses
    NoImplicitPrelude
    NoMonomorphismRestriction
    NumericUnderscores
    OverloadedLabels
    OverloadedRecordDot
    OverloadedStrings
    ImportQualifiedPost
    ScopedTypeVariables
    TemplateHaskell
    TupleSections
    TypeApplications
    TypeOperators
    TypeSynonymInstances

library
  import: base
  hs-source-dirs: src
  exposed-modules:
    RobinHood.AppState
    RobinHood.CellParser
    RobinHood.Char8
    RobinHood.Cmd
    RobinHood.Compactable
    RobinHood.CsvParser
    RobinHood.Date
    RobinHood.Instrument
    RobinHood.Money
    RobinHood.Prelude
    RobinHood.Profit
    RobinHood.Report
    RobinHood.RobinRow
    RobinHood.Run
    RobinHood.TargetPeriod

  build-depends:
    , Decimal < 0.6
    , bytestring < 0.13
    , containers < 0.9
    , directory < 1.4
    , exceptions < 0.11
    , filepath < 1.6
    , generic-lens < 3
    , lens < 6
    , mtl < 3
    , optparse-applicative < 1
    , semigroups < 0.22
    , template-haskell < 2.24
    , text < 3
    , time < 2
    , trace-embrace < 2

test-suite test
  import: base
  type: exitcode-stdio-1.0
  main-is: Driver.hs
  other-modules:
    Discovery
    RobinHood.Test.Money
    RobinHood.Test.TargetPeriod
  hs-source-dirs: test
  ghc-options: -Wall -rtsopts -threaded -main-is Driver
  build-depends:
    , robin-hood-profit
    , tasty
    , tasty-discover
    , tasty-hunit
    , tasty-quickcheck
    , text

executable rhprofit
  main-is: Main.hs
  other-modules:
    Paths_robin_hood_profit
  autogen-modules:
    Paths_robin_hood_profit
  hs-source-dirs:
    exe
  ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      base
    , robin-hood-profit
  default-language: GHC2021