hs-bindgen-1.0.0.0: hs-bindgen.cabal
cabal-version: 3.0
name: hs-bindgen
version: 1.0.0.0
license: BSD-3-Clause
license-file: LICENSE
author: Well-Typed LLP
maintainer: info@well-typed.com
category: Development
build-type: Simple
synopsis: Generate Haskell bindings from C headers
description: Automatically generate Haskell bindings from C headers
tested-with:
GHC ==9.4.8
|| ==9.6.7
|| ==9.8.4
|| ==9.10.3
|| ==9.12.2
|| ==9.14.1
extra-source-files:
bootstrap/*.h
musl-include/**/*.h
musl-include/COPYRIGHT
musl-include/VERSION
test-artefacts/fixtures/**/*.hs
test-artefacts/fixtures/**/*.txt
test-artefacts/fixtures/**/*.yaml
test-artefacts/headers/**/*.h
test-artefacts/headers/**/*.yaml
extra-doc-files:
CHANGELOG.md
known-issues.md
README.md
source-repository head
type: git
location: https://github.com/well-typed/hs-bindgen
subdir: hs-bindgen
source-repository this
type: git
location: https://github.com/well-typed/hs-bindgen
subdir: hs-bindgen
tag: release-1.0.0.0
flag dev
description: Build debugging utilities for developing hs-bindgen itself
default: False
manual: True
common lang
ghc-options:
-Wall -Widentities -Wprepositive-qualified-module
-Wredundant-constraints -Wunused-packages
-Wno-unticked-promoted-constructors
build-depends: base >=4.17 && <4.23
default-language: GHC2021
default-extensions:
DataKinds
DefaultSignatures
DeriveAnyClass
DerivingStrategies
DerivingVia
DisambiguateRecordFields
DuplicateRecordFields
FunctionalDependencies
LambdaCase
MultiWayIf
NoFieldSelectors
NoNamedFieldPuns
OverloadedLabels
OverloadedRecordDot
OverloadedStrings
PatternSynonyms
QuantifiedConstraints
TypeApplications
TypeFamilies
UndecidableInstances
ViewPatterns
if impl(ghc >=9.8)
default-extensions: TypeAbstractions
library internal
import: lang
hs-source-dirs: src-internal
ghc-options: -Wmissing-export-lists
-- Modules containing public API.
exposed-modules: HsBindgen.Config
-- Internal modules
--
-- Rules:
--
-- * HsBindgen.IR.* modules must not (transitively) import from Frontend or
-- Backend
exposed-modules:
Data.Digraph
HsBindgen
HsBindgen.Artefact
HsBindgen.ArtefactM
HsBindgen.Backend
HsBindgen.Backend.Category
HsBindgen.Backend.Category.ApplyChoice
HsBindgen.Backend.Extensions
HsBindgen.Backend.Global
HsBindgen.Backend.Hs.AST
HsBindgen.Backend.Hs.AST.CompletePragma
HsBindgen.Backend.Hs.AST.Strategy
HsBindgen.Backend.Hs.CallConv
HsBindgen.Backend.Hs.Haddock.Documentation
HsBindgen.Backend.Hs.Haddock.Translation
HsBindgen.Backend.Hs.Name
HsBindgen.Backend.Hs.Origin
HsBindgen.Backend.Hs.Translation
HsBindgen.Backend.Hs.Translation.Field
HsBindgen.Backend.Hs.Translation.ForeignImport
HsBindgen.Backend.Hs.Translation.Function
HsBindgen.Backend.Hs.Translation.Instances
HsBindgen.Backend.Hs.Translation.Monad
HsBindgen.Backend.Hs.Translation.Newtype
HsBindgen.Backend.Hs.Translation.Structure
HsBindgen.Backend.Hs.Translation.ToFromFunPtr
HsBindgen.Backend.Hs.Translation.Union
HsBindgen.Backend.HsModule.Names
HsBindgen.Backend.HsModule.Pretty
HsBindgen.Backend.HsModule.Pretty.CAPI
HsBindgen.Backend.HsModule.Pretty.Comment
HsBindgen.Backend.HsModule.Pretty.Common
HsBindgen.Backend.HsModule.Pretty.Decl
HsBindgen.Backend.HsModule.Pretty.Expr
HsBindgen.Backend.HsModule.Pretty.Type
HsBindgen.Backend.HsModule.Render
HsBindgen.Backend.HsModule.Translation
HsBindgen.Backend.HsModule.Translation.Doxygen
HsBindgen.Backend.Level
HsBindgen.Backend.Runtime
HsBindgen.Backend.SHs.AST
HsBindgen.Backend.SHs.AST.Expr
HsBindgen.Backend.SHs.AST.Type
HsBindgen.Backend.SHs.Simplify
HsBindgen.Backend.SHs.Translation
HsBindgen.Backend.SHs.Translation.Common
HsBindgen.Backend.SHs.Translation.MapFunction
HsBindgen.Backend.TH.Translation
HsBindgen.Backend.UniqueSymbol
HsBindgen.BindingSpec
HsBindgen.BindingSpec.Gen
HsBindgen.BindingSpec.Private.Common
HsBindgen.BindingSpec.Private.Stdlib
HsBindgen.BindingSpec.Private.V1
HsBindgen.BindingSpec.Private.Version
HsBindgen.Boot
HsBindgen.Cache
HsBindgen.Clang
HsBindgen.Clang.CompareVersions
HsBindgen.Clang.Discover
HsBindgen.Clang.ExtraClangArgs
HsBindgen.Clang.Macos
HsBindgen.Clang.Tokens
HsBindgen.Config.ClangArgs
HsBindgen.Config.Internal
HsBindgen.Config.MangleCandidate
HsBindgen.Config.MangleCandidate.ReservedNames
HsBindgen.Config.Prelims
HsBindgen.Doxygen
HsBindgen.Eff
HsBindgen.Errors
HsBindgen.Frontend
HsBindgen.Frontend.Analysis
HsBindgen.Frontend.Analysis.DeclIndex
HsBindgen.Frontend.Analysis.DeclIndex.ResolveMacro
HsBindgen.Frontend.Analysis.DeclUseGraph
HsBindgen.Frontend.Analysis.DeclUseGraph.Construction
HsBindgen.Frontend.Analysis.DeclUseGraph.Definition
HsBindgen.Frontend.Analysis.DeclUseGraph.Query
HsBindgen.Frontend.Analysis.Deps
HsBindgen.Frontend.Analysis.IncludeGraph
HsBindgen.Frontend.Analysis.Typedefs
HsBindgen.Frontend.Analysis.UnnamedIdUsage
HsBindgen.Frontend.Analysis.UseDeclGraph
HsBindgen.Frontend.DeclMeta
HsBindgen.Frontend.LanguageC
HsBindgen.Frontend.LanguageC.Error
HsBindgen.Frontend.LanguageC.Monad
HsBindgen.Frontend.LanguageC.PartialAST
HsBindgen.Frontend.LanguageC.PartialAST.FromLanC
HsBindgen.Frontend.LanguageC.PartialAST.ToBindgen
HsBindgen.Frontend.Pass.AdjustTypes
HsBindgen.Frontend.Pass.AdjustTypes.IsPass
HsBindgen.Frontend.Pass.ConstructTranslationUnit
HsBindgen.Frontend.Pass.ConstructTranslationUnit.IsPass
HsBindgen.Frontend.Pass.EnrichComments
HsBindgen.Frontend.Pass.EnrichComments.IsPass
HsBindgen.Frontend.Pass.FillUnnamedIds
HsBindgen.Frontend.Pass.FillUnnamedIds.ChooseNames
HsBindgen.Frontend.Pass.FillUnnamedIds.IsPass
HsBindgen.Frontend.Pass.Final
HsBindgen.Frontend.Pass.MangleNames
HsBindgen.Frontend.Pass.MangleNames.CreateNames
HsBindgen.Frontend.Pass.MangleNames.DetectClashes
HsBindgen.Frontend.Pass.MangleNames.Error
HsBindgen.Frontend.Pass.MangleNames.IsPass
HsBindgen.Frontend.Pass.MangleNames.Names
HsBindgen.Frontend.Pass.MangleNames.ResolveNames
HsBindgen.Frontend.Pass.Parse
HsBindgen.Frontend.Pass.Parse.Builtin
HsBindgen.Frontend.Pass.Parse.Context
HsBindgen.Frontend.Pass.Parse.Decl
HsBindgen.Frontend.Pass.Parse.Decl.Field
HsBindgen.Frontend.Pass.Parse.Decl.ImplicitFields
HsBindgen.Frontend.Pass.Parse.Decl.Macro
HsBindgen.Frontend.Pass.Parse.Decl.Members
HsBindgen.Frontend.Pass.Parse.IsPass
HsBindgen.Frontend.Pass.Parse.Monad.Decl
HsBindgen.Frontend.Pass.Parse.Monad.SourceRangeMap
HsBindgen.Frontend.Pass.Parse.Monad.Type
HsBindgen.Frontend.Pass.Parse.Msg
HsBindgen.Frontend.Pass.Parse.Result
HsBindgen.Frontend.Pass.Parse.Type
HsBindgen.Frontend.Pass.PrepareReparse
HsBindgen.Frontend.Pass.PrepareReparse.AST
HsBindgen.Frontend.Pass.PrepareReparse.Flatten
HsBindgen.Frontend.Pass.PrepareReparse.IsPass
HsBindgen.Frontend.Pass.PrepareReparse.IsPass.Msg
HsBindgen.Frontend.Pass.PrepareReparse.Lexer
HsBindgen.Frontend.Pass.PrepareReparse.Parser
HsBindgen.Frontend.Pass.PrepareReparse.Preprocessor
HsBindgen.Frontend.Pass.PrepareReparse.Printer
HsBindgen.Frontend.Pass.PrepareReparse.Printer.Util
HsBindgen.Frontend.Pass.PrepareReparse.Simplifier
HsBindgen.Frontend.Pass.PrepareReparse.Tracer
HsBindgen.Frontend.Pass.PrepareReparse.Update
HsBindgen.Frontend.Pass.ReparseMacroExpansions
HsBindgen.Frontend.Pass.ReparseMacroExpansions.ForgetAnn
HsBindgen.Frontend.Pass.ReparseMacroExpansions.IsPass
HsBindgen.Frontend.Pass.ReparseMacroExpansions.IsPass.Msg
HsBindgen.Frontend.Pass.ReparseMacroExpansions.LanC
HsBindgen.Frontend.Pass.ReparseMacroExpansions.Zip
HsBindgen.Frontend.Pass.ReparseMacroExpansions.Zip.Error
HsBindgen.Frontend.Pass.ResolveBindingSpecs
HsBindgen.Frontend.Pass.ResolveBindingSpecs.IsPass
HsBindgen.Frontend.Pass.Select
HsBindgen.Frontend.Pass.Select.IsPass
HsBindgen.Frontend.Pass.SimplifyAST
HsBindgen.Frontend.Pass.SimplifyAST.IsPass
HsBindgen.Frontend.Pass.TranslateTypes
HsBindgen.Frontend.Pass.TranslateTypes.IsPass
HsBindgen.Frontend.Pass.TranslateTypes.IsPass.Msg
HsBindgen.Frontend.Pass.TranslateTypes.Translation
HsBindgen.Frontend.Pass.TypecheckMacros
HsBindgen.Frontend.Pass.TypecheckMacros.IsPass
HsBindgen.Frontend.Pass.TypecheckMacros.KnownTypes
HsBindgen.Frontend.Pass.TypecheckMacros.Typecheck
HsBindgen.Frontend.Predicate
HsBindgen.Frontend.PrettyC
HsBindgen.Frontend.ProcessIncludes
HsBindgen.Frontend.RootHeader
HsBindgen.Frontend.TranslationUnit
HsBindgen.Guasi
HsBindgen.Imports
HsBindgen.Instances
HsBindgen.IR.C
HsBindgen.IR.C.Conflict
HsBindgen.IR.C.Decl
HsBindgen.IR.C.DeclPath
HsBindgen.IR.C.HashDefine
HsBindgen.IR.C.HashIncludeArg
HsBindgen.IR.C.LocationInfo
HsBindgen.IR.C.Naming
HsBindgen.IR.C.PrettyPrinter
HsBindgen.IR.C.RootDirective
HsBindgen.IR.C.Type
HsBindgen.IR.Hs
HsBindgen.IR.Hs.Type
HsBindgen.IR.Pass
HsBindgen.IR.Pass.Ann
HsBindgen.IR.Pass.CommentDecl
HsBindgen.IR.Pass.Definition
HsBindgen.IR.Pass.ExtBinding
HsBindgen.IR.Pass.Id
HsBindgen.IR.Pass.Macro
HsBindgen.IR.Pass.Msg
HsBindgen.IR.Pass.ScopedName
HsBindgen.IR.Pass.Types
HsBindgen.IR.Translation
HsBindgen.Language.C
HsBindgen.Language.Haskell
HsBindgen.Macro.Empty
HsBindgen.Macro.Error
HsBindgen.Macro.Flip
HsBindgen.Macro.Interface
HsBindgen.Macro.Parse
HsBindgen.Macro.Raw
HsBindgen.Macro.Raw.Lang
HsBindgen.Macro.Raw.Parse
HsBindgen.Macro.Syntax
HsBindgen.Macro.Type
HsBindgen.Macro.UniqueExpansion
HsBindgen.Macro.UniqueExpansion.Parse
HsBindgen.Macro.UniqueExpansion.Types
HsBindgen.NameHint
HsBindgen.Orphans
HsBindgen.Resolve
HsBindgen.Test
HsBindgen.Test.C
HsBindgen.Test.Hs
HsBindgen.Test.Internal
HsBindgen.Test.Readme
HsBindgen.TH.Internal
HsBindgen.TraceMsg
HsBindgen.Util.Monad
HsBindgen.Util.Process
HsBindgen.Util.Rational
HsBindgen.Util.Tracer
Text.SimplePrettyPrint
other-modules: Paths_hs_bindgen
autogen-modules: Paths_hs_bindgen
other-extensions: TemplateHaskellQuotes
-- Internal dependencies
build-depends: hs-bindgen-runtime >=1.0.0.0 && <1.1
-- External dependencies
build-depends:
, aeson >=2.2.1.0 && <2.3
, ansi-terminal >=1.0.0 && <1.2
, array >=0.5.4.0 && <0.6
, base-compat >=0.13.1 && <0.16
, base16-bytestring >=1.0.2.0 && <1.1
, bytestring >=0.11.4.0 && <0.13
, containers >=0.6.5.1 && <0.9
, contra-tracer >=0.2 && <0.3
, cryptohash-sha256 >=0.11.102.1 && <0.12
, data-default >=0.7 && <0.9
, debruijn ^>=0.3.1
, directory >=1.3.6.2 && <1.4
, doxygen-parser >=0.1 && <0.2
, exceptions >=0.10 && <0.11
, filepath >=1.4 && <1.6
, fin >=0.3.2 && <0.4
, language-c >=0.9 && <0.11
, libclang-bindings >=0.2 && <0.3
, mtl >=2.2 && <2.4
, optics-core >=0.4 && <0.5
, parsec >=3.1 && <3.2
, pretty >=1.1.3.6 && <1.2
, process >=1.6 && <1.7
, regex-pcre-builtin >=0.95 && <0.96
, some >=1.0.6 && <1.1
, template-haskell >=2.19 && <2.25
, temporary >=1.3 && <1.4
, text >=1.2 && <2.2
, transformers >=0.5 && <0.7
, unliftio-core >=0.2.1 && <0.3
, vec >=0.5 && <0.6
, yaml >=0.11.11.1 && <0.12
library
import: lang
hs-source-dirs: src
exposed-modules:
HsBindgen.Macro
HsBindgen.TH
other-modules:
HsBindgen.Internal.Macro.CExpr
HsBindgen.Internal.Macro.CExpr.Global
HsBindgen.Internal.Macro.CExpr.Parse
HsBindgen.Internal.Macro.CExpr.Resolution
HsBindgen.Internal.Macro.CExpr.Translation.Type
HsBindgen.Internal.Macro.CExpr.Translation.Value
HsBindgen.Internal.Macro.CExpr.Type
HsBindgen.Internal.Macro.CExpr.Typecheck
reexported-modules:
other-extensions: TemplateHaskellQuotes
-- Internal dependencies
build-depends:
, hs-bindgen-runtime
, hs-bindgen:internal
-- External dependencies
build-depends:
, c-expr-dsl >=0.2 && <0.3
, c-expr-runtime >=0.1 && <0.2
-- Inherited dependencies
build-depends:
, containers
, data-default
, debruijn
, fin
, libclang-bindings
, template-haskell
, text
, vec
executable hs-bindgen-cli
import: lang
default-extensions: NoFieldSelectors
main-is: hs-bindgen-cli.hs
hs-source-dirs: app
other-modules:
HsBindgen.App
HsBindgen.App.Output
HsBindgen.Cli
HsBindgen.Cli.BindingSpec
HsBindgen.Cli.BindingSpec.StdLib
HsBindgen.Cli.GenTests
HsBindgen.Cli.Info
HsBindgen.Cli.Info.BuiltinMacros
HsBindgen.Cli.Info.Doxygen
HsBindgen.Cli.Info.IncludeGraph
HsBindgen.Cli.Info.Instances
HsBindgen.Cli.Info.Libclang
HsBindgen.Cli.Info.ResolveHeader
HsBindgen.Cli.Info.UseDeclGraph
HsBindgen.Cli.Internal
HsBindgen.Cli.Internal.Frontend
HsBindgen.Cli.Preprocess
HsBindgen.Cli.ToolSupport
HsBindgen.Cli.ToolSupport.Literate
Paths_hs_bindgen
autogen-modules: Paths_hs_bindgen
-- Internal dependencies
build-depends:
, hs-bindgen
, hs-bindgen:internal
-- Inherited dependencies
build-depends:
, containers
, data-default
, libclang-bindings
-- External dependencies
build-depends:
, bytestring >=0.11.4.0 && <0.13
, optparse-applicative >=0.18 && <0.20
, prettyprinter >=1.7.1 && <1.8
, text >=1.2 && <2.2
executable clang-ast-dump
import: lang
main-is: Main.hs
hs-source-dirs: clang-ast-dump
if flag(dev)
buildable: True
else
buildable: False
-- Internal dependencies
build-depends: hs-bindgen:internal
-- Inherited dependencies
build-depends:
, containers
, data-default
, libclang-bindings
, text
-- External dependencies
build-depends: optparse-applicative >=0.18 && <0.20
library test-common
import: lang
hs-source-dirs: test/common
exposed-modules:
Test.Common.HsBindgen.Trace
Test.Common.HsBindgen.Trace.Patterns
Test.Common.HsBindgen.Trace.Predicate
Test.Common.Util.AnsiDiff
Test.Common.Util.Cabal
Test.Common.Util.Tasty
Test.Common.Util.Tasty.Golden
-- Internal dependencies
build-depends: hs-bindgen:internal
-- Inherited dependencies
build-depends:
, ansi-terminal
, bytestring
, containers
, directory
, filepath
, mtl
, text
, transformers
-- External dependencies
build-depends:
, deepseq >=1.4 && <1.6
, Diff >=1.0 && <1.1
, edit-distance >=0.2.2.1 && <0.3
, primitive >=0.9 && <0.10
, tasty >=1.5 && <1.6
, tasty-hunit >=0.10.2 && <0.11
, utf8-string >=1.0.2 && <1.1
test-suite test-hs-bindgen
import: lang
type: exitcode-stdio-1.0
main-is: test-hs-bindgen.hs
hs-source-dirs: test/hs-bindgen
-- -threaded is needed for parallel fixture compilation via direct GHC
-- invocations.
-- Suppress warning about hs-bindgen being unused in test code
-- (it's only used when compiling generated TH modules)
ghc-options: -threaded -Wno-unused-packages
other-modules:
Test.HsBindgen.Clang
Test.HsBindgen.Fixtures.Haddock
Test.HsBindgen.Fixtures.TestCases
Test.HsBindgen.Fixtures.Utils
Test.HsBindgen.Frontend.LanguageC
Test.HsBindgen.Frontend.Pass.PrepareReparse
Test.HsBindgen.Golden
Test.HsBindgen.Golden.Arrays
Test.HsBindgen.Golden.Attributes
Test.HsBindgen.Golden.BindingSpecs
Test.HsBindgen.Golden.Comprehensive
Test.HsBindgen.Golden.Declarations
Test.HsBindgen.Golden.Documentation
Test.HsBindgen.Golden.EdgeCases
Test.HsBindgen.Golden.Functions
Test.HsBindgen.Golden.Globals
Test.HsBindgen.Golden.Infra.Check.BindingSpec
Test.HsBindgen.Golden.Infra.Check.FailureBindgen
Test.HsBindgen.Golden.Infra.Check.FailureLibclang
Test.HsBindgen.Golden.Infra.Check.PP
Test.HsBindgen.Golden.Infra.Check.TH
Test.HsBindgen.Golden.Infra.TestCase
Test.HsBindgen.Golden.Infra.TestCaseTree
Test.HsBindgen.Golden.Macros
Test.HsBindgen.Golden.Macros.Lang
Test.HsBindgen.Golden.Macros.Redeclaration
Test.HsBindgen.Golden.Macros.Reparse
Test.HsBindgen.Golden.ProgramAnalysis
Test.HsBindgen.Golden.Types
Test.HsBindgen.Integration.ExitCode
Test.HsBindgen.Integration.OverwritePolicy
Test.HsBindgen.Macro.CExpr
Test.HsBindgen.Macro.Infra
Test.HsBindgen.Macro.Syntax
Test.HsBindgen.Macro.Syntax.Clang
Test.HsBindgen.Macro.UniqueExpansion
Test.HsBindgen.PPFixtures
Test.HsBindgen.PPFixtures.Compile
Test.HsBindgen.PPFixtures.TestCases
Test.HsBindgen.Prop.Selection
Test.HsBindgen.Resources
Test.HsBindgen.THFixtures
Test.HsBindgen.THFixtures.Compile
Test.HsBindgen.THFixtures.Generate
Test.HsBindgen.THFixtures.TestCases
Test.HsBindgen.Unit.ClangArgs
Test.HsBindgen.Unit.Digraph
Test.HsBindgen.Unit.Frontend
Test.HsBindgen.Unit.Pretty
Test.HsBindgen.Unit.RootDirective
Test.HsBindgen.Unit.Runtime
Test.HsBindgen.Unit.Tracer
-- Internal dependencies
build-depends:
, hs-bindgen
, hs-bindgen-runtime
, hs-bindgen:internal
, test-common
-- Inherited dependencies
build-depends:
, c-expr-dsl
, containers
, data-default
, debruijn
, directory
, filepath
, libclang-bindings
, mtl
, optics-core
, parsec
, process
, tasty
, tasty-hunit
, template-haskell
, temporary
, text
, utf8-string
-- External dependencies
build-depends:
, async >=2.2 && <2.3
, syb >=0.7.2.4 && <0.8
, tasty-quickcheck >=0.11 && <0.12
-- Build tools needed for integration tests
build-tool-depends: hs-bindgen:hs-bindgen-cli
-- Test TH mode
--
-- We're intentionally /not/ importing the common @lang@ section here: this
-- forces us to explicitly declare whatever language extensions are needed
-- when using hs-bindgen's TH mode.
test-suite test-th
type: exitcode-stdio-1.0
main-is: test-th.hs
hs-source-dirs: test/th
include-dirs: test-artefacts/headers
default-language: GHC2021
ghc-options:
-Wall -Widentities -Wprepositive-qualified-module
-Wredundant-constraints -Wunused-packages
-Wno-unticked-promoted-constructors
other-modules:
Test.TH.RecordDot
Test.TH.StaticCounterA
Test.TH.StaticCounterB
Test.TH.Test01
Test.TH.Test02
-- Internal dependencies
build-depends:
, hs-bindgen
, hs-bindgen-runtime
, test-common
-- Inherited dependencies
build-depends:
, base
, filepath
, optics
, tasty
, tasty-hunit
-- External dependencies
build-depends: vector ^>=0.13.2.0
test-suite test-literate
type: exitcode-stdio-1.0
main-is: test-literate.hs
hs-source-dirs: test/literate
include-dirs: test-artefacts/headers
default-language: GHC2021
build-depends: base >=4.17 && <4.23
ghc-options:
-Wall -Widentities -Wredundant-constraints -Wunused-packages
-Wno-unticked-promoted-constructors
other-modules:
Test.Literate.Test01
Test.Literate.Test02
Test.Literate.TestPointer
Test.Literate.TestSafe
Test.Literate.TestSafeAndUnsafe
Test.Literate.TestUnsafe
-- Here we use literate haskell "hook" to avoid setting up true preprocessors
-- (which would require either build-type: Custom or Hooks - both not a great options, at least yet).
--
-- The source files contains the actual options and arguments to be used with hs-bindgen
ghc-options: -pgmL hs-bindgen-cli -optL tool-support -optL literate
build-tool-depends: hs-bindgen:hs-bindgen-cli
-- Internal dependencies
build-depends:
, c-expr-runtime
, hs-bindgen-runtime