packages feed

language-lustre-1.0.0: Language/Lustre/Phase.hs

module Language.Lustre.Phase where

import Data.Set(Set)
import qualified Data.Set as Set

data LustrePhase = PhaseRename
                 | PhaseTypecheck
                 | PhaseNoStatic
                 | PhaseNoStruct
                 | PhaseInline
                 | PhaseToCore
                   deriving (Show,Eq,Ord,Enum,Bounded)

noPhases :: Set LustrePhase
noPhases = Set.empty

allPhases :: Set LustrePhase
allPhases = Set.fromList [ minBound .. maxBound ]

phases :: [LustrePhase] -> Set LustrePhase
phases = Set.fromList