module Lang.LamIf.Time where

import FP

data TimeParam = TimeParam
  { lexicalCallDepth  Maybe 
  , dynamicCallDepth  Maybe 
  , lexicalObjDepth  Maybe 
  , dynamicObjDepth  Maybe 
  }
makeLenses ''TimeParam

icfa  TimeParam
icfa = TimeParam Nothing Nothing Nothing Nothing

zcfa  TimeParam
zcfa = TimeParam (Just (𝕟 0)) (Just (𝕟 0)) (Just (𝕟 0)) (Just (𝕟 0))

lkcfa    TimeParam
lkcfa n = zcfa { lexicalCallDepth = Just n }

kcfa    TimeParam
kcfa n = zcfa { dynamicCallDepth = Just n }

locfa    TimeParam
locfa n = zcfa { lexicalObjDepth = Just n }

ocfa    TimeParam
ocfa n = zcfa { dynamicObjDepth = Just n }