Use Paths as primitive cairo layer.
Paths:
pathPoint, lineConnect, curveConnect, arcConnect, etc. (operations from cairo)
trace :: Path -> Mask
close :: Path -> Shape
Shapes:
filled :: Shape -> Mask
outlined :: Shape -> Mask
Mask:
stamp :: Source -> Mask -> Form
Brainstorming needed