Modula-2 Reloaded

A Modern Typesafe & Literate Programming Notation

Site Menu

Project

Specification

Implementation

Recommendations

Reference

Needs Updating

Work in Progress

Wastebasket

Wiki Manual

edit SideBar

Set Type

Spec.SetType History

Hide minor edits - Show changes to output

2010-05-24 12:55 by benjk -
Added lines 1-40:
[@BINDINGS FOR SetType;

(* Semantic Properties for Static Set Types *)


(* ADTs must be opaque records,
  structured literals may be used *)

TYPE = OPAQUE RECORD := {};


(* Bindings permitted for SetType ADTs *)

PROCEDURE [:=]; (* allow binding to assignment operator *)

PROCEDURE [::]; (* allow binding to conversion operator *)

PROCEDURE [.]; (* allow accessor binding to [ ] operator *)

PROCEDURE [!]; (* allow mutator binding to [ ] operator *)

PROCEDURE [COUNT]; (* allow binding to COUNT function *)

PROCEDURE [FOR]; (* allow binding to FOR .. IN iterator *)

PROCEDURE [+]; (* allow binding to set union operator *)

PROCEDURE [-]; (* allow binding to set difference operator *)

PROCEDURE [*]; (* allow binding to set intersection operator *)

PROCEDURE [/]; (* allow binding to symmetric set difference op *)

PROCEDURE [=]; (* allow binding to equal operator *)

PROCEDURE [<]; (* allow binding to subset operator *)

PROCEDURE [>]; (* allow binding to superset operator *)

END SetType.@]