Changes between Version 1 and Version 2 of Plugins/Phases


Ignore:
Timestamp:
Jun 12, 2008 11:32:30 PM (7 years ago)
Author:
batterseapower
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Plugins/Phases

    v1 v2  
    5353 
    5454This module explicitly exports its local phase C, which is defined to occur before the SpecConstr phase. However the programmer is totally free to remove it from the exports list and hence prevent other modules from referring to it. 
     55 
     56== Expressing Dependence == 
     57 
     58Assuming we just have two levels of ordering we want to express: 
     59 * Strict ordering (A MUST appear before/after B) 
     60 * Lenient ordering (A SHOULD appear before/after B) 
     61 
     62Then a possible syntax is: 
     63 
     64{-# PHASE A < B, [< C], > D, [> E] #-} 
     65 
     66To express that A: 
     67 * MUST appear before B 
     68 * SHOULD appear before C 
     69 * MUST appear after D 
     70 * SHOULD appear after E 
     71 
     72The square brackets are meant to be evocative of optionality in Backus-Naur form, but I'm not yet sure if that is too easily confused with Haskell list syntax. 
     73