-- Parses the arguments. Not the most elegant of command line options, but
-- it works and I'm lazy.
-- 
-- args -> ((pitch, yaw, roll), iterations, init string, color map,
--    material map)
argParse :: [String] -> ((GLfloat, GLfloat, GLfloat), Int, String,
    Map.Map Char Material, Map.Map Char String)
argParse args = (
    (
      read (args!!0) * pi / 180.0,
      read (args!!1) * pi / 180.0,
      read (args!!2) * pi / 180.0
    ),
    read (args!!3),
    args!!4,
    readMats (drop 5 args),
    readExps (drop 5 args))
argParse :: [String] -> ((GLfloat, GLfloat, GLfloat), Int, String,
    Map.Map Char Material, Map.Map Char String)
argParse args = (
    (
      read (args!!0) * pi / 180.0,
      read (args!!1) * pi / 180.0,
      read (args!!2) * pi / 180.0
    ),
    read (args!!3),
    args!!4,
    readMats (drop 5 args),
    readExps (drop 5 args))
argParse args = (
    (
      read (args!!0) * pi / 180.0,
      read (args!!1) * pi / 180.0,
      read (args!!2) * pi / 180.0
    ),
    read (args!!3),
    args!!4,
    readMats (drop 5 args),
    readExps (drop 5 args))