packages feed

cpmonad-0.1.0.0: cpmonad.cabal

cabal-version:      3.0

name:               cpmonad
version:            0.1.0.0

category:           Tools
synopsis:           Competitive programming problemsetting toolchain
description:
    Cpmonad (a typo of Comonad) is a set of tools for setting competitive programming
    problems. It features easy bidirectional parser/serializer, set of generators,
    and tools to automatically run the solutions on all tests. There is no need to
    write checkers for input and output formats.

    This is very much an experiment. It only supports Batch problems, and doesn't
    yet support exporting to polygon or other formats.

license:            MIT
license-file:       LICENSE
author:             drdilyor
maintainer:         drdilyor <drdilyor@outlook.com>

homepage:           https://github.com/drdilyor/cpmonad
bug-reports:        https://github.com/drdilyor/cpmonad/issues

build-type:         Simple
extra-doc-files:    CHANGELOG.md
extra-source-files:

source-repository head
  type: git
  location: https://github.com/drdilyor/cpmonad.git

common ghc
    ghc-options: -Wall -Wno-name-shadowing
    default-extensions:
        BangPatterns
        BinaryLiterals
        BlockArguments
        ConstraintKinds
        DataKinds
        DefaultSignatures
        DeriveDataTypeable
        DeriveFoldable
        DeriveFunctor
        DeriveGeneric
        DeriveTraversable
        DeriveAnyClass
        DoAndIfThenElse
        EmptyDataDecls
        ExistentialQuantification
        FlexibleContexts
        FlexibleInstances
        FunctionalDependencies
        GADTs
        GeneralizedNewtypeDeriving
        InstanceSigs
        KindSignatures
        LambdaCase
        MultiParamTypeClasses
        MultiWayIf
        NamedFieldPuns
        OverloadedStrings
        OverloadedRecordDot
        PartialTypeSignatures
        PatternGuards
        PolyKinds
        RankNTypes
        RecordWildCards
        ScopedTypeVariables
        StandaloneDeriving
        TupleSections
        TypeFamilies
        TypeSynonymInstances
        ViewPatterns
        DeriveAnyClass
        OverloadedStrings
        TypeFamilies

    default-language: GHC2021

common dependencies

-- TODO: weaken the ranges
    build-depends:
        base ^>=4.18.2.1,
        bytestring >= 0.11.5 && < 0.12,
        deepseq >= 1.4.8 && < 1.5,
        containers >= 0.6.7 && < 0.7,
        data-default >= 0.8.0 && < 0.9,
        directory >= 1.3.8 && < 1.4,
        mtl >= 2.3.1 && < 2.4,
        transformers >= 0.6.1 && < 0.7,
        microlens >= 0.4.14 && < 0.5,
        microlens-th >= 0.4.3 && < 0.5,
        optparse-applicative >= 0.18.1 && < 0.19,
        process >= 1.6.19 && < 1.7,
        random >= 1.2.1 && < 1.3,
        temporary >= 1.3 && < 1.4,
        vector >= 0.13.2 && < 0.14,
        vector-algorithms >= 0.9.1 && < 0.10,

library
    import:           ghc, dependencies
    exposed-modules:
        Cpmonad,
        Cpmonad.Gen,
        Cpmonad.Printer,
        Cpmonad.Misc,
    hs-source-dirs:   lib

test-suite test
    import: ghc, dependencies
    ghc-options: -Wno-missing-signatures
    type: exitcode-stdio-1.0
    main-is: Spec.hs
    other-modules: Cpmonad.PrinterSpec

    build-depends:
        cpmonad,
        hspec,
        hspec-contrib,
        QuickCheck,
        HUnit,

    hs-source-dirs: test