packages feed

hexpr-0.0.0.0: hexpr.cabal

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