cabal-version: 3.0 -- The cabal-version field refers to the version of the .cabal specification, -- and can be different from the cabal-install (the tool) version and the -- Cabal (the library) version you are using. As such, the Cabal (the library) -- version used must be equal or greater than the version stated in this field. -- Starting from the specification version 2.2, the cabal-version field must be -- the first thing in the cabal file. -- Initial package description 'typed-gui' generated by -- 'cabal init'. For further documentation, see: -- http://haskell.org/cabal/users-guide/ -- -- The name of the package. name: typed-gui -- The package version. -- See the Haskell package versioning policy (PVP) for standards -- guiding when and how versions should be incremented. -- https://pvp.haskell.org -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change version: 0.1.0.0 -- A short (one-line) description of the package. synopsis: GUI framework based on typed-fsm -- A longer description of the package. description: GUI framework based on typed-fsm. Similar to the elm architecture, the difference is that typed-gui separates control status and data status. There are at least three advantages to doing this. 1. The type of the View part has a clear control state, which can limit the type of Message and avoid sending error messages. 2. The Update part can give full play to the advantages of typed-fsm, and typed-fsm takes over the entire control flow. 3. Extract the common part and simplify the control state. -- The license under which the package is released. license: MIT -- The file containing the license text. license-file: LICENSE -- The package author(s). author: sdzx-1 -- An email address to which users can send suggestions, bug reports, and patches. maintainer: shangdizhixia1993@163.com -- A copyright notice. -- copyright: category: GUI build-type: Simple -- Extra doc files to be distributed with the package, such as a CHANGELOG or a README. extra-doc-files: CHANGELOG.md -- Extra source files to be distributed with the package, such as examples, or a tutorial module. -- extra-source-files: common warnings ghc-options: -Wall library -- Import common warning flags. import: warnings -- Modules exported by the library. exposed-modules: TypedGUI -- Modules included in this library but not exported. -- other-modules: -- LANGUAGE extensions used by modules in this package. -- other-extensions: -- Other library packages from which modules are imported. build-depends: base ^>=4.20.0.0 , mtl >= 2.3.1 && < 2.4 , singletons-base >= 3.4 && < 3.5 , stm >= 2.5.3 && < 2.6 , threepenny-gui >= 0.9.4 && < 0.10 , typed-fsm >= 0.3.0 && < 0.4 -- Directories containing source files. hs-source-dirs: src -- Base language which the package is written in. default-language: GHC2021 test-suite typed-gui-test -- Import common warning flags. import: warnings -- Base language which the package is written in. default-language: GHC2021 -- Modules included in this executable, other than Main. -- other-modules: -- LANGUAGE extensions used by modules in this package. -- other-extensions: -- The interface type and version of the test suite. type: exitcode-stdio-1.0 -- Directories containing source files. hs-source-dirs: test -- The entrypoint to the test suite. main-is: Main.hs -- Test dependencies. build-depends: base ^>=4.20.0.0, typed-gui source-repository head type: git location: https://github.com/sdzx-1/typed-gui