Name: alms Version: 0.6.8 Copyright: 2012-2015, 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: 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