packages feed

pro-abstract-0.1.2.0: pro-abstract.cabal

cabal-version: 3.0

name: pro-abstract
version: 0.1.2.0

category: Language
synopsis: Abstract syntax for writing documents
description:
    This package defines the abstract syntax only
    for a language for writing documents.

    Forked from part of the
    <https://hackage.haskell.org/package/prosidy prosidy>
    package.

license: MPL-2.0
license-file: LICENSE
maintainer: hello@typeclasses.com
author: Chris Martin, James Alexander Feldman-Crough
copyright:
    © 2020 James Alexander Feldman-Crough,
    © 2022 Mission Valley Software LLC

extra-source-files: changelog.txt

source-repository head
    type: git
    location: git://github.com/typeclasses/pro-abstract.git

common base
    default-language: Haskell2010
    ghc-options: -Wall
    default-extensions:
        BlockArguments
        ConstraintKinds
        DataKinds
        DeriveAnyClass
        DeriveGeneric
        DerivingStrategies
        FlexibleContexts
        FlexibleInstances
        GADTs
        GeneralizedNewtypeDeriving
        LambdaCase
        MultiParamTypeClasses
        PatternSynonyms
        ScopedTypeVariables
        TypeApplications
        TypeFamilies
    build-depends:
        base ^>= 4.13 || ^>= 4.14 || ^>= 4.15 || ^>= 4.16
      , containers ^>= 0.6
      , deepseq ^>= 1.4.4
      , hashable ^>= 1.3.4.0 || ^>= 1.4
      , optics-core ^>= 0.4
      , text ^>= 1.2.4

library
    import: base
    mixins: base hiding (Prelude)
    build-depends: pro-abstract-prelude
    hs-source-dirs: library/pro-abstract

    exposed-modules:
        ProAbstract
      , ProAbstract.Annotation
      , ProAbstract.Classes
      , ProAbstract.Content
      , ProAbstract.Datatypes
      , ProAbstract.Families
      , ProAbstract.Metadata
      , ProAbstract.Optics
      , ProAbstract.Structure
      , ProAbstract.Tag
      , ProAbstract.Tagless
      , ProAbstract.Types

    other-modules:
      , ProAbstract.Annotation.AnnotationFamily
      , ProAbstract.Annotation.HasAnnotation
      , ProAbstract.Annotation.HasManyAnnotations
      , ProAbstract.Content.ContentFamily
      , ProAbstract.Content.ContentsFamily
      , ProAbstract.Content.HasContent
      , ProAbstract.Content.HasContents
      , ProAbstract.Metadata.HasManyMetadata
      , ProAbstract.Metadata.HasMetadata
      , ProAbstract.Metadata.HasMetadataOptics
      , ProAbstract.Metadata.MetadataOptics
      , ProAbstract.Metadata.MetadataType
      , ProAbstract.Structure.Block
      , ProAbstract.Structure.BlockTag
      , ProAbstract.Structure.BlockTagContent
      , ProAbstract.Structure.CanBePlain
      , ProAbstract.Structure.CanFork
      , ProAbstract.Structure.Document
      , ProAbstract.Structure.Fork
      , ProAbstract.Structure.Fragment
      , ProAbstract.Structure.HasManyParagraphs
      , ProAbstract.Structure.HasManyPlainBlocks
      , ProAbstract.Structure.HasManyPlainInlines
      , ProAbstract.Structure.Inline
      , ProAbstract.Structure.Paragraph
      , ProAbstract.Structure.Plain
      , ProAbstract.Structure.PlainBlock
      , ProAbstract.Tag.HasManyTags
      , ProAbstract.Tag.HasTag
      , ProAbstract.Tag.HasTagOptics
      , ProAbstract.Tag.TaggedFamily
      , ProAbstract.Tag.TagOptics
      , ProAbstract.Tag.TagType
      , ProAbstract.Tagless.CanBeTagless
      , ProAbstract.Tagless.CanHaveTaglessContent
      , ProAbstract.Tagless.KindOfText

library pro-abstract-prelude
    import: base
    hs-source-dirs: library/pro-abstract-prelude

    default-extensions:
        NoImplicitPrelude
        NoMonomorphismRestriction

    exposed-modules:
        Containers
      , Prelude

    mixins:
        base (Prelude as BasePrelude)
      , base hiding (Prelude)

test-suite test-pro-abstract
    import: base
    type: exitcode-stdio-1.0
    hs-source-dirs: test-suite/test-pro-abstract
    main-is: Main.hs

    default-extensions:
        OverloadedLists
        OverloadedStrings
        QuasiQuotes
        TemplateHaskell

    build-depends:
        pro-abstract
      , neat-interpolation ^>= 0.5
      , hedgehog ^>= 1.0 || ^>= 1.1