alms-0.6.9: alms.cabal
Name: alms
Version: 0.6.9
Copyright: 2012-2018, Jesse A. Tov
Cabal-Version: >= 1.8
License: BSD3
License-File: LICENSE
Stability: experimental
Author: Jesse A. Tov <jesse@eecs.northwestern.edu>
Maintainer: jesse@eecs.northwestern.edu
Homepage: http://users.eecs.northwestern.edu/~jesse/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:
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:
AST
Statics.Subsume
Statics.Sealing
Statics.Coercion
Statics.InstGen
Statics.Expr
Statics.Patt
Statics.Decl
Statics.Rename
Statics.Env
Statics.Error
Statics.Constraint
Statics.Type
Statics.Sig
Util.Undo
Util.Trace
Util.Viewable
Util.Bogus
Util.MonadRef
Util.Eq1
Dynamics
Meta.FileString
Meta.QuoteData
Meta.Quasi
Meta.THHelpers
Meta.DeriveNotable
Message.AST
Message.Parser
Message.Quasi
Message.Render
Main
Value
Paths
Env
Compat
Type.Syntax
Type.Ppr
Type.Rank
Type.Analyses
Type.Subst
Type.Reduce
Type.TyVar
Type.ArrowAnnotations
Type.Internal
Type.Recursive
Error
AST.SyntaxTable
AST.TypeAnnotation
AST.Ident
AST.Expr
AST.Patt
AST.Anti
AST.Notable
AST.Decl
AST.Kind
AST.Type
AST.Lit
BasisUtils
Basis
Type
Syntax.Lexer
Syntax.Parser
Syntax.Ppr
Syntax.Prec
Syntax.Strings
Syntax.PprClass
Syntax.ImplicitThreading
Syntax.Construction
Data.OptionalClass
Data.Lattice
Data.UnionFind
Data.Loc
Data.Perhaps
Data.Empty
Alt.Parsec
Alt.Token
Alt.NodeMap
Alt.PrettyPrint
Alt.Graph
Statics
Basis.Socket
Basis.Array
Basis.Row
Basis.Future
Basis.MVar
Basis.Channel.Haskell
Basis.Exn
Basis.Thread
Basis.Channel
Basis.IO
Util
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