applications.collages.collageAlgebra:
{
  ntColour = const(.8),
  arrow-length = const(.15),

  hline = { polyline((0,1/5),(1,1/5)) },
  sq = { filledPolygon((0,0),(1,0),(1,1),(0,1)) },

  sample-outline = { polygon((.5,0),(1,.5),(.5,1),(0,.5))},
  sample-filled = { filledPolygon((.5,0),(1,.5),(.5,1),(0,.5))[#ntColour,#ntColour,#ntColour] }
             + #sample-outline,
  sample-arrow = { filledPolygon((0,0),(#arrow-length / 4,#arrow-length),
      (-#arrow-length / 4,#arrow-length))},
  arrowtrans = rotate(45) . translate(.5,0),
  sample = #sample-filled + #sample-outline + #sample-arrow transformed by arrowtrans,
  S = #sample,
  
  up = scale(1,4/5) . translate(0,1/5),
  up = <#hline, up>,
  
  plus = rotate(90) . translate(1,0),
  plus = <plus>,
  
  minus = rotate(-90) . translate(0,1),
  minus = <minus>
  
}
