applications.collages.collageAlgebra:
  {
  
    outline = { polygon((0,0), (2,0), (2, 1), (0, 1)) },
    tile = { filledPolygon((0,0), (2,0), (2, 1), (0, 1))[.8] } + #outline,
    tile2 = { filledPolygon((0,0), (2,0), (2, 1), (0, 1))[.5] } + #outline,
    
    sample-arrow = { filledPolygon((0,0), (.3,.12), (.3,-.12)) },
    sample-reduction = scale(.85,.7) . translate(.125, .15),
    S = #tile +
        #outline transformed by sample-reduction +
        #sample-arrow transformed by sample-reduction,
    A = #tile2 +
        #outline transformed by sample-reduction +
        #sample-arrow transformed by sample-reduction,
            
    r1 = scale(.5,-.5) . rotate(90),
    r2 = use(r1) . scale(-1,1) . translate(2,0),
    r3 = scale(.5) . translate(.5,0),
    r4 = scale(-.5,-.5) . translate(1.5, 1),
    refine = < r1, r2, r3, r4>,
    
    s1 = scale(.5,-.5) . rotate(90),
    s2 = use(s1) . translate(.5,0),
    s3 = use(s1) . scale(-1,1) . translate(1.5,0),
    s4 = use(s1) . scale(-1,1) . translate(2,0),
    refine2 = <s1, s2, s3, s4>,
    
    
    invert = translate(-.5,-1) . scale(2,-2),
    invert = <invert>
    
  }
