packages feed

typed-fsm-0.3.0.0: typed-fsm.cabal

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

-- 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-fsm' generated by
-- 'cabal init'. For further documentation, see:
--   http://haskell.org/cabal/users-guide/

-- The name of the package.
name:               typed-fsm

-- The package version.

-- 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.3.0.0

-- A short (one-line) description of the package.
synopsis: A framework for strongly typed FSM

-- A longer description of the package.
description:
  FSM stands for [Finite State Machine](https://en.wikipedia.org/wiki/Finite-state_machine).
  The typed-fsm is used to define and execute FSM.

  Advantages of type-fsm:

  * Focus on the right message.
  * Top-to-bottom design for easy refactoring.
  * Conducive to building complex state machine systems:
  ** Type guarantees will not produce incorrect function calls when written.
  ** With the help of the type system, we can define many state processing functions and then call each other recursively with confidence.
  * There is a sanity check. If you miss some items for pattern matching, the compiler will issue a warning, and there will also be a warning for invalid items.
-- 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:           Control
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: TypedFsm
                   , TypedFsm.Core
                   , TypedFsm.Driver.Common
                   , TypedFsm.Driver.Op
                   , TypedFsm.Driver.General
                   , Data.IFunctor

    -- 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 && < 5
                 , dependent-map ^>= 0.4.0.0
                 , dependent-sum ^>= 0.7.2.0
                 , mtl ^>= 2.3.1
                 , singletons-base ^>= 3.4

    -- Directories containing source files.
    hs-source-dirs:   src

    -- Base language which the package is written in.
    default-language: GHC2021

source-repository head
  type:     git
  location: https://github.com/sdzx-1/typed-fsm