= Organizing the Proposals = This page groups the various proposals for Haskell' into four distinct categories. For each category we provide a brief descriptions and two lists: the first contains the proposals from the [wiki:Status'#definitelyinProposalStatus "definitely in"] table, while the second one contains the proposals from the [wiki:Status'#probablyinProposalStatus "probably in"] table. == Syntax == These proposals primarily addresses issues of lexing and parsing. Of particular importance are questions of ambiguity and understandability. * #23 [wiki:DoAndIfThenElse if-then-else in do notation] (done) * #78 [wiki:InfixTypeConstructors Infix type constructors] * #42 [wiki:LineCommentSyntax Syntax of line comments] * #53 [wiki:NondecreasingIndentation Non-decreasing indentation] * #39 [wiki:QualifiedIdentifiers Lexical syntax of qualified identifiers] * #72 [wiki:Underscore Make _ caseless] * #30 [wiki:FixityResolution Remove operator fixity from the context-free grammar] == Language Convenience == These proposals provide a more convenient way to do something that we can already do (but perhaps in a "clunky" way). Of particular interest are questions about usability and readability. * #25 [wiki:EmptyDataDeclarations Empty Data Declarations] * #56 [wiki:PatternGuards Pattern guards] (done) * #24 [wiki:HierarchicalModules Hierarchical Modules] * #70 [wiki:TypeSynonymInstances Type synonym instances] * #51 [wiki:NewPragmas New pragmas] * #76 [wiki:BangPatterns Bang patterns] * #52 [wiki:NewtypeDeriving Generalized deriving for newtype] * #21 [wiki:Defaulting Improve defaulting rules] * #84 [wiki:KindAnnotations Kind annotations] * #103 [wiki:MonomorphicPatternBindings Monomorphic pattern bindings] * #67, #68 [wiki:ScopedTypeVariables Scoped typed variables] == Type System == These proposals are related to the type system and how the type checker works. They affect the static semantics of programs in fairly deep ways. * #60 Higher-rank polymorphism ([wiki:RankNTypes],[wiki:Rank2Types],[wiki:PolymorphicComponents] * #26 [wiki:ExistentialQuantification Existential quantification in datatypes] * #49 [wiki:MultiParamTypeClasses Multi-parameter type classes] (see also [wiki:MultiParamTypeClassesDilemma]) * #65 [wiki:RelaxedDependencyAnalysis Relaxed dependency analysis] * #32 [wiki:FlexibleInstances Flexible instances] == Critical Constants == These proposals provide sets of constants with specified operational behavior. They affect the dynamic semantics of programs in fairly deep ways. * #74 [wiki:Concurrency Concurrency] * #35 [wiki:ForeignFunctionInterface Foreign Function Interface] * #39 [wiki:ImpreciseExceptions Imprcise exceptions]