Personal tools

User:Zzo38/Proposal for more-notation

From HaskellWiki

< User:Zzo38(Difference between revisions)
Jump to: navigation, search
(New page: This document is proposal for more-notation in Haskell. ==Syntax== Anywhere that a more-notation is allowed (see Uses), you can use the syntax: * <tt>more</tt> ''[''<tt>(</tt>''name_of_en...)
 
Line 21: Line 21:
 
===Datatype declarations===
 
===Datatype declarations===
   
===Fields===
+
===Fields in record syntax===
   
 
===Lists===
 
===Lists===

Revision as of 20:29, 27 August 2011

This document is proposal for more-notation in Haskell.

Contents

1 Syntax

Anywhere that a more-notation is allowed (see Uses), you can use the syntax:

  • more [(name_of_enumeration)] more_name {parameters}
  • name_of_enumeration: A name of any type which is an enumeration. It can be another one using more-notation, but it must be able to fully determine it before this more-notation can be fully determined.
  • more_name: A capitalized name. It uses the same namespace as constructors, so you are not allowed to have a constructor of the same name (although it is OK to have types of the that name).
  • parameters: Optional lowercased names. These names are in local scope, and may already exist in this scope, although they do not have to.

A more-declaration is a module-level declaration of this syntax:

  • [ numeric_literal | (enumeration_constructor) ] more_name {parameters} = contents { | contents } ;

2 Semantics

3 Uses

3.1 Do-blocks

3.2 Case alternatives

3.3 Datatype declarations

3.4 Fields in record syntax

3.5 Lists

4 Combining with Template Haskell