name: crem version: 0.1.0.0 author: Marco Perone maintainer: marco.perone@tweag.io copyright: 2022 Tweag I/O license: MIT category: Machines, Control, State Machines synopsis: Compositional representable executable machines homepage: https://github.com/tweag/crem bug-reports: https://github.com/tweag/crem/issues description: "`crem` stands for __c__ompositional __r__epresentable __e__xecutable __m__achines. It allows creating state machines (Mealy machines in fact), compose them to build bigger machines out of smaller ones and then run them and draw their flow and their state space." tested-with: - GHC ==9.0.2 - GHC ==9.2.7 - GHC ==9.4.4 - GHC ==9.6.1 extra-source-files: - README.md - CHANGELOG.md flags: errors: description: enable -Werror default: False manual: True when: - condition: impl(ghc >= 9.2) then: # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/control.html?highlight=ghc2021#extension-GHC2021 language: GHC2021 ghc-options: # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wmissing-kind-signatures - -Wno-missing-kind-signatures else: default-extensions: - BangPatterns - BinaryLiterals - ConstrainedClassMethods - ConstraintKinds - DeriveDataTypeable - DeriveFoldable - DeriveFunctor - DeriveGeneric - DeriveLift - DeriveTraversable - DoAndIfThenElse - EmptyCase - EmptyDataDecls - EmptyDataDeriving - ExistentialQuantification - ExplicitForAll - FlexibleContexts - FlexibleInstances - ForeignFunctionInterface - GADTSyntax - GeneralisedNewtypeDeriving - HexFloatLiterals - ImplicitPrelude - ImportQualifiedPost - InstanceSigs - KindSignatures - MonomorphismRestriction - MultiParamTypeClasses - NamedFieldPuns - NamedWildCards - NumericUnderscores - PatternGuards - PolyKinds - PostfixOperators - RankNTypes - RelaxedPolyRec - ScopedTypeVariables - StandaloneDeriving - StandaloneKindSignatures - StarIsType - TraditionalRecordSyntax - TupleSections - TypeApplications - TypeOperators - TypeSynonymInstances - condition: flag(errors) ghc-options: # Turn every warning into an error - -Werror # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Werror default-extensions: - DerivingStrategies # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/deriving_strategies.html#extension-DerivingStrategies - LambdaCase # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/lambda_case.html#extension-LambdaCase - PackageImports # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/package_qualified_imports.html#extension-PackageImports # Options inspired by: https://medium.com/mercury-bank/enable-all-the-warnings-a0517bc081c3 ghc-options: # Enable every warning GHC supports - -Weverything # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Weverything # Turn off the warnings we don't care about. - -Wno-safe # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/safe_haskell.html#ghc-flag--Wsafe - -Wno-unsafe # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/safe_haskell.html#ghc-flag--Wunsafe - -Wno-missing-safe-haskell-mode # https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/safe_haskell.html#ghc-flag--Wmissing-safe-haskell-mode - -Wno-implicit-prelude # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wimplicit-prelude - -Wno-missing-export-lists # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wmissing-export-lists - -Wno-missing-home-modules # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wmissing-home-modules - -Wno-missing-import-lists # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wmissing-import-lists - -Wno-all-missed-specialisations # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wall-missed-specialisations - -Wno-prepositive-qualified-module # https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html#ghc-flag--Wprepositive-qualified-module dependencies: - base >= 4.15 && < 4.19 library: source-dirs: src dependencies: - profunctors >= 3.2 && < 5.7 - singletons-base >= 3.0 && < 3.3 - text >= 1.2 && < 2.1 # Disable adding Paths_crem to other-modules, because it does not conform to our style guide. # https://github.com/sol/hpack#handling-of-paths_-modules when: - condition: false other-modules: Paths_crem internal-libraries: crem-examples: source-dirs: examples dependencies: - crem - profunctors - singletons-base - text # Disable adding Paths_crem to other-modules, because it does not conform to our style guide. # https://github.com/sol/hpack#handling-of-paths_-modules when: - condition: false other-modules: Paths_crem tests: crem-spec: main: Spec.hs source-dirs: spec dependencies: - crem - crem-examples - hspec >= 2.7 && < 2.11 - profunctors - singletons-base build-tools: hspec-discover:hspec-discover when: - condition: false other-modules: Paths_crem crem-doctests: source-dirs: doctest main: Main.hs ghc-options: - -threaded - -Wno-unused-packages dependencies: - crem - crem-examples - doctest-parallel >= 0.2.3 && < 0.4 when: - condition: false other-modules: Paths_crem executables: hobbit-game: source-dirs: hobbit-game main: Main.hs dependencies: - crem - crem-examples # Disable adding Paths_crem to other-modules, because it does not conform to our style guide. # https://github.com/sol/hpack#handling-of-paths_-modules when: - condition: false other-modules: Paths_crem hobbit-map: source-dirs: hobbit-map main: Main.hs dependencies: - crem - crem-examples - text # Disable adding Paths_crem to other-modules, because it does not conform to our style guide. # https://github.com/sol/hpack#handling-of-paths_-modules when: - condition: false other-modules: Paths_crem