applications.collages.collageAlgebra:
{
  ntColour1 = const(1),
  ntColour2 = const(.8),
  ntColour3 = const(.6),
  ntColour4 = const(.4),
  reduce = scale(.8) . translate(1.45,.55),

  square = { filledPolygon((0,0),(100,0),(100,100),(0,100))<0,0,0> },
  
  S = #square,
  A = #square,
  B = #square,
  SQ = #square,
  
  SN = { 
         filledPolygon((0,0),(100,0),(100,100),(0,100))[#ntColour2],
         polygon((0,0),(100,0),(100,100),(0,100))
       },
  AN = { 
         filledPolygon((0,0),(100,0),(100,100),(0,100))[#ntColour3],
         polygon((0,0),(100,0),(100,100),(0,100))
       },
  BN = { 
         filledPolygon((0,0),(100,0),(100,100),(0,100))[#ntColour1],
         polygon((0,0),(100,0),(100,100),(0,100))
       },
  SQN = { 
          filledPolygon((0,0),(100,0),(100,100),(0,100))[#ntColour4],
          polygon((0,0),(100,0),(100,100),(0,100))
        },
  
  f1 = scale(1/3, .5),
  f2 = scale(1/3, .5) . translate(100/3,0),
  f3 = scale(1/3, .5) . translate(200/3,0),
  f4 = scale(1/3, .5) . translate(200/3,50),
  F = < f1, f2, f3, f4 >,
  
  f21 = scale(1/3,1),
  f22 = scale(1/3,1) . translate(100/3,0),
  f23 = scale(1/3,1) . translate(200/3,0),
  F2 = < f21, f22, f23 >,

  c1 = colourOperation(g|1/2:1, b|1/2:1),
  c2 = colourOperation(g|1:1/2, b|1:1/2),
  c3 = colourOperation(g|1/2:0, b|1/2:0),
  
  g1 = scale(.5),
  g2 = scale(.5) . translate(50,0),
  g3 = scale(.5) . translate(0,50),
  g4 = scale(.5) . translate(50,50),
  G = < g1, g2, g3, g4 >,
  
  d = colourOperation(r|1/2:0  , g|1/2:0  , b|1/2:0   ),
  m = colourOperation(r|1/2:1/2, g|1/2:1/2, b|1/2:1/2 ),
  l = colourOperation(r|1/2:1  , g|1/2:1  , b|1/2:1   )
    
}
