module Lang.LamIf.Analyses where
import FP
import MAAM
import Lang.LamIf.Val
import Lang.LamIf.Semantics
import Lang.LamIf.Monads
import Lang.LamIf.CPS
timeChoices :: [(String, ExTime)]
timeChoices =
[ ("*" , ExTime (W :: UniTime (Cτ Ψ)) )
, ("1" , ExTime (W :: UniTime (Kτ 1 Ψ)) )
, ("0" , ExTime (W :: UniTime (Zτ Ψ)) )
]
valChoices :: [(String, ExVal)]
valChoices =
[ ( "concrete" , ExVal (W :: UniVal (Power CVal)) )
, ( "abstract" , ExVal (W :: UniVal (Power AVal)) )
]
monadChoices :: [(String, ExMonad)]
monadChoices =
[ ( "ps" , ExMonad (W :: UniMonad PSΣ PSΣ𝒫 PS))
, ( "fs" , ExMonad (W :: UniMonad FSΣ FSΣ𝒫 FS))
, ( "fi" , ExMonad (W :: UniMonad FIΣ FIΣ𝒫 FI))
]
gcChoices :: [(String, AllGC)]
gcChoices =
[ ( "no" , AllGC nogc )
, ( "yes" , AllGC yesgc )
]
closureChoices :: [(String, AllCreateClo)]
closureChoices =
[ ( "link" , AllCreateClo linkClo )
, ( "copy" , AllCreateClo copyClo )
]
timeFilterChoices :: [(String, TimeFilter)]
timeFilterChoices =
[ ("*" , not . is haltL . stampedFix )
, ("app" , is appFL . stampedFix )
]