-- Initial spine.cabal generated by cabal init. For further documentation, -- see http://haskell.org/cabal/users-guide/ -- The name of the package. name: hexpr -- The package version. See the Haskell package versioning policy (PVP) -- for standards guiding when and how versions should be incremented. -- http://www.haskell.org/haskellwiki/Package_versioning_policy -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change version: 0.0.0.0 synopsis: A framework for symbolic, homoiconic languages. description: H-expressions are a variant of S-expressions. Where s-expressions are atoms or nodes grouped into lists of length at least one, h-expressions, or hexprs, are grouped into lists of length two. This may seem very trivial, but this restriction makes it possible to treat parenthesis in the concrete syntax of hexprs merely as a manual override to the basic precedence rules, just as in mathematics. In particular, a suitable hexpr interpreter is capable of understanding eta-converted terms, which is quite unrealistic, if not impossible in an sexpr-based syntax. Thankfully, hexprs retain all the advantages of sexprs with respect to homoiconic syntax. Hexprs on their own are fairly unhelpful, so we also have also included a configurable hexpr parser based on parsec. I wasn't long before mission creep set in, and a series of tools were produced to aid in creating a frontend for hexpr-based languages. See the package 'hexpr-examples' for some examples of the framework in action. I think H could stand for many things: the greek letter eta, hierarchical, happy, next in the alphabet after f, or perhaps hexpr == hexpr-expression. Where it comes from is unimportant, what is important is that we can easily the next generation of homoiconic languages. -- URL for the project homepage or repository. homepage: https://github.com/Zankoku-Okuno/hexpr/ -- The license under which the package is released. license: BSD3 -- The file containing the license text. license-file: LICENSE -- The package author(s). author: Zankoku Okuno -- An email address to which users can send suggestions, bug reports, and -- patches. maintainer: zankoku.okuno@gmail.com -- A copyright notice. -- copyright: category: Language build-type: Simple -- Constraint on the version of Cabal needed to build this package. cabal-version: >=1.8 library -- Modules exported by the library. exposed-modules: Data.Hierarchy, Data.Sexpr, Data.Hexpr, Language.Parse, Language.Desugar, Language.Distfix, Control.Monad.Stack, Control.Monad.Errors, Control.Monad.Gensym, Control.Monad.Environment, Data.FiniteType -- Modules included in this library but not exported. -- other-modules: -- Other library packages from which modules are imported. build-depends: base ==4.6.*, transformers ==0.3.*, mtl ==2.1.*, either ==4.1.*, parsec ==3.1.*, data-ref