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