---------------------------------------------------------------------
-- STATEMENT WRAPPERS

-- | Define the location of a 'label', see 'newLabel' for details. This function will fail
--   if the same 'Label' is passed to 'label' more than once.
label :: Label -> Action ()
label lbl = emit $ Labeled lbl
label :: Label -> Action ()
label lbl = emit $ Labeled lbl
label lbl = emit $ Labeled lbl