applications.collages.collageAlgebra:
{
  ntColour = const(.8),

  part = { filledPolygon((-1,0),(1,0),(0,-1)) },
  uu = { arc(0,.2+sqrt(.64/(sin(45)*sin(45)) - .64),.8/sin(45),225,90)  },
  dd = { arc(0,-.2-sqrt(.64/(sin(45)*sin(45)) - .64),.8/sin(45),45,90) },
  du = { curve((-.8,-.2) right (.5,.5), (.8,.2) left (-.5,-.5)) },
  ud = { curve((-.8,.2) right (.5,-.5), (.8,-.2) left (-.5,.5)) },
  curve = { curve((-1,0) right (1.5,0),
                  (0,-.8) right (-.5,0),
                  (1,0) right (1.5,0)) },
  
  sample-outline = { polygon((-1,0),(1,0),(0,-1))},
  sample-filled = { filledPolygon((-1,0),(1,0),(0,-1))[#ntColour,#ntColour,#ntColour] }
                       + #sample-outline,
  sample-arrow = { filledPolygon((1,0),(.6,.1),(.6,-.1))},
  sample = #sample-filled + #sample-outline + #sample-arrow,
  S = #sample,
  
  f1 = similarity((-1,0) -> (-1,0), (1,0) -> (0,-1)),
  f2 = similarity((-1,0) -> (1,0), (1,0) -> (0,-1)),
  F = <f1, f2>
  
}
