packages feed

ruler-0.4.0.0: src/ViewSel/Self.cag

-------------------------------------------------------------------------
-- Interfacing to ViewSel: self/copy/clone
-------------------------------------------------------------------------

%%[1 hs module (ViewSel.Self)
%%]

%%[1 hs export (viewSelsSelfT, rlSelSelfT)
%%]

%%[1 hs import (UHC.Util.Nm, UHC.Util.DependencyGraph, ViewSel.ViewSel)
%%]

%%[1 ag import ({ViewSel/AbsSynAG})
%%]

%%[1 ag
WRAPPER AGViewSelsItf
WRAPPER AGRlSelItf
%%]

%%[1 hs
wrapViewSelsT :: T_ViewSels -> Syn_AGViewSelsItf
wrapViewSelsT vs
  = let r1 = sem_AGViewSelsItf_AGItf vs
    in  wrap_AGViewSelsItf r1
            (Inh_AGViewSelsItf)

viewSelsSelfT :: ViewSels -> ViewSels
viewSelsSelfT vs
  = self_Syn_AGViewSelsItf r
  where r = wrapViewSelsT (sem_ViewSels vs)

wrapRlSelT :: T_RlSel -> Syn_AGRlSelItf
wrapRlSelT  vs
  = let r1 = sem_AGRlSelItf_AGItf vs
    in  wrap_AGRlSelItf r1
            (Inh_AGRlSelItf)

rlSelSelfT :: RlSel -> RlSel
rlSelSelfT vs
  = self_Syn_AGRlSelItf r
  where r = wrapRlSelT (sem_RlSel vs)

%%]

-------------------------------------------------------------------------
-- Self
-------------------------------------------------------------------------

%%[1 ag
ATTR AllViewSel AllRlSel AllNmSel [ | | self: SELF ]
ATTR AGViewSelsItf [ | | self: ViewSels ]
ATTR AGRlSelItf [ | | self: RlSel ]
%%]