Name: alms Version: 0.6.5 Copyright: 2011, Jesse A. Tov Cabal-Version: >= 1.8 License: BSD3 License-File: LICENSE Stability: experimental Author: Jesse A. Tov 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: 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