packages feed

alms-0.6.3: alms.cabal

Name:           alms
Version:        0.6.3
Copyright:      2011, Jesse A. Tov
Cabal-Version:  >= 1.8
License:        BSD3
License-File:   LICENSE
Stability:      experimental
Author:         Jesse A. Tov <tov@ccs.neu.edu>
Maintainer:     tov@ccs.neu.edu
Homepage:       http://www.ccs.neu.edu/~tov/pubs/alms
Category:       Compilers/Interpreters
Synopsis:       a practical affine language
Build-type:     Simple
Extra-Source-Files:
                alms.cabal.sh src/extensions.txt
Data-Files:     lib/*.alms examples/*.alms examples/*.sh
                examples/*.in examples/*.out
                README Makefile

Description:
    Alms is an experimental, general-purpose programming language that
    supports practical affine types. To offer the expressiveness of
    Girard’s linear logic while keeping the type system light and
    convenient, Alms uses expressive kinds that minimize notation while
    maximizing polymorphism between affine and unlimited types.

    A key feature of Alms is the ability to introduce abstract affine types
    via ML-style signature ascription. In Alms, an interface can impose
    stiffer resource usage restrictions than the principal usage
    restrictions of its implementation. This form of sealing allows the type
    system to naturally and directly express a variety of resource
    management protocols from special-purpose type systems.

Source-Repository head
  Type:     git
  Location: git://github.com/tov/alms.git

Flag unicode
  Description: Use Unicode symbols for pretty-printing

Flag editline
  Description: Enable line editing using the editline package

Flag parsec3
  Description: Use version 3 of the parsec package

Flag readline
  Description: Enable line editing using the readline package
  Default:     False

Executable alms
  Main-Is:              Main.hs
  Hs-Source-Dirs:       src
  GHC-Options:          -O3
  CPP-Options:          -DALMS_CABAL_BUILD
  Build-Depends:
                        haskell98,
                        base == 4.*,
                        HUnit >= 1.2,
                        QuickCheck >= 2,
                        array >= 0.3,
                        containers >= 0.1,
                        directory >= 1.0,
                        fgl >= 5,
                        filepath >= 1.1,
                        incremental-sat-solver >= 0.1.7,
                        mtl >= 1.1,
                        network >= 2.2,
                        pretty >= 1,
                        random >= 1,
                        stm >= 2.0,
                        syb >= 0.1,
                        template-haskell >= 2.0,
                        transformers >= 0.2,
                        tuple >= 0.2
  Other-Modules:
                        Alt.Graph
                        Alt.NodeMap
                        Alt.Parsec
                        Alt.PrettyPrint
                        Alt.Token
                        AST.Anti
                        AST.Decl
                        AST.Expr
                        AST.Ident
                        AST.Kind
                        AST.Lit
                        AST.Notable
                        AST.Patt
                        AST.SyntaxTable
                        AST.Type
                        AST.TypeAnnotation
                        AST
                        Basis.Array
                        Basis.Channel.Haskell
                        Basis.Channel
                        Basis.Exn
                        Basis.Future
                        Basis.IO
                        Basis.MVar
                        Basis.Row
                        Basis.Socket
                        Basis.Thread
                        Basis
                        BasisUtils
                        Compat
                        Data.Empty
                        Data.Lattice
                        Data.Loc
                        Data.OptionalClass
                        Data.Perhaps
                        Data.UnionFind
                        Dynamics
                        Env
                        Error
                        Main
                        Message.AST
                        Message.Parser
                        Message.Quasi
                        Message.Render
                        Meta.DeriveNotable
                        Meta.FileString
                        Meta.Quasi
                        Meta.QuoteData
                        Meta.THHelpers
                        Paths
                        Statics.Coercion
                        Statics.Constraint
                        Statics.Decl
                        Statics.Env
                        Statics.Error
                        Statics.Expr
                        Statics.InstGen
                        Statics.Patt
                        Statics.Rename
                        Statics.Sealing
                        Statics.Sig
                        Statics.Subsume
                        Statics.Type
                        Statics
                        Syntax.Construction
                        Syntax.ImplicitThreading
                        Syntax.Lexer
                        Syntax.Parser
                        Syntax.Ppr
                        Syntax.PprClass
                        Syntax.Prec
                        Syntax.Strings
                        Type.Analyses
                        Type.ArrowAnnotations
                        Type.Internal
                        Type.Ppr
                        Type.Rank
                        Type.Recursive
                        Type.Reduce
                        Type.Subst
                        Type.Syntax
                        Type.TyVar
                        Type
                        Util.Bogus
                        Util.Eq1
                        Util.MonadRef
                        Util.Trace
                        Util.UndoIO
                        Util.Viewable
                        Util
                        Value
  Extensions:
                        BangPatterns
                        CPP
                        DeriveDataTypeable
                        DeriveFunctor
                        EmptyDataDecls
                        ExistentialQuantification
                        FlexibleContexts
                        FlexibleInstances
                        FunctionalDependencies
                        GeneralizedNewtypeDeriving
                        MultiParamTypeClasses
                        ParallelListComp
                        PatternGuards
                        QuasiQuotes
                        RankNTypes
                        ScopedTypeVariables
                        StandaloneDeriving
                        TemplateHaskell
                        TupleSections
                        TypeOperators
                        TypeSynonymInstances
                        UndecidableInstances
                        UnicodeSyntax
                        ViewPatterns

  if flag(unicode)
    CPP-Options:    -DUNICODE

  if flag(readline)
    Build-Depends:  readline >= 1.0
    CPP-Options:    -DUSE_READLINE=System.Console.Readline
  else
    if flag(editline)
      Build-Depends:  editline >= 0.2.1
      CPP-Options:    -DUSE_READLINE=System.Console.Editline.Readline

  if flag(parsec3)
    Build-Depends:  parsec == 3.*
    CPP-Options:    -DPARSEC_VERSION=3
  else
    Build-Depends:  parsec == 2.*
    CPP-Options:    -DPARSEC_VERSION=2