packages feed

WidgetRattus-0.3: WidgetRattus.cabal

cabal-version:       1.18
name:                WidgetRattus
version:             0.3
category:            FRP
synopsis:            An asynchronous modal FRP language for GUI programming
description:

            This library implements an experimental variant of the Async Rattus
            programming language that features extensions for implementing GUIs.
            A comprehensive introduction can be found in this 
            <src/docs/paper.pdf paper>.

            .

            Several example GUIs implemented using Widget Rattus can be found
            <https://github.com/pa-ba/AsyncRattus/tree/WidgetRattus/examples/gui here>.
            


homepage:            https://github.com/pa-ba/AsyncRattus/tree/WidgetRattus
bug-reports:         https://github.com/pa-ba/AsyncRattus/issues
License:             BSD3
License-file:        LICENSE
copyright:           Copyright (C) 2024 Emil Houlborg, Gregers Rørdam, Patrick Bahr, Jean-Claude Sebastian Disch, Asger Lademark Heegaard
Author:              Emil Houlborg, Gregers Rørdam, Patrick Bahr, Jean-Claude Sebastian Disch, Asger Lademark Heegaard
maintainer:          Patrick Bahr <paba@itu.dk>
stability:           experimental

build-type:          Custom

extra-source-files:  CHANGELOG.md
                     examples/gui/src/*.hs
extra-doc-files:     docs/paper.pdf

                     
custom-setup
  setup-depends:
    base  >= 4.5 && < 5,
    Cabal >= 1.18  && < 4


library
  exposed-modules:     WidgetRattus
                       WidgetRattus.Signal
                       WidgetRattus.Future
                       WidgetRattus.Strict
                       WidgetRattus.Plugin
                       WidgetRattus.Primitives
                       WidgetRattus.InternalPrimitives
                       WidgetRattus.Channels
                       WidgetRattus.Plugin.Annotation
                       WidgetRattus.Widgets
                                              
  other-modules:       WidgetRattus.Plugin.ScopeCheck
                       WidgetRattus.Plugin.SingleTick
                       WidgetRattus.Plugin.CheckClockCompatibility
                       WidgetRattus.Plugin.Strictify
                       WidgetRattus.Plugin.Utils
                       WidgetRattus.Plugin.Dependency
                       WidgetRattus.Plugin.StableSolver
                       WidgetRattus.Plugin.Transform
                       WidgetRattus.Plugin.PrimExpr
                       WidgetRattus.Widgets.InternalTypes
                       WidgetRattus.Derive
  build-depends:       base >=4.16 && <5,
                       containers >= 0.6.5 && < 0.8,
                       ghc >= 9.2 && < 9.7,
                       ghc-boot >= 9.2 && < 9.7,
                       hashtables >= 1.3.1 && < 1.4,
                       simple-affine-space >= 0.2.1 && < 0.3,
                       transformers >= 0.5.6 && < 0.7,
                       template-haskell >= 2.17 && < 2.23,
                       text >= 1.2 && < 3,
                       monomer >= 1.4 && < 2
  hs-source-dirs:      src
  default-language:    Haskell2010
  ghc-options:         -W



Test-Suite ill-typed
  type:                exitcode-stdio-1.0
  main-is:             test/IllTyped.hs
  default-language:    Haskell2010
  build-depends:       WidgetRattus, base
  ghc-options:         -fplugin=WidgetRattus.Plugin


Test-Suite well-typed
  type:                exitcode-stdio-1.0
  main-is:             WellTyped.hs
  hs-source-dirs:      test
  default-language:    Haskell2010
  build-depends:       WidgetRattus, base, containers, text
  ghc-options:         -fplugin=WidgetRattus.Plugin