tikz.within( '*' )

local l1 = line{ p{ 0,  0 }, p{ 3,  1 } }
local l2 = line{ p{ 0, -1 }, p{ 3,  0 } }
local l3 = line{ p{ 0, -2 }, p{ 3, -1 } }

draw{ arrow, l1 }
draw{ double_arrow, dashed, l2 }
draw{ color = purple, line_width = 2, dotted, l3 }

put{ node{
       at = l3.pc,
       anchor = center,
       align = center,
       color = purple,
       rotate = l3.phi * 180 / math.pi,
       text = 'label for purple line',
       text_width = '2cm',
} }