help :: String
help = unlines [
    "Usage:",
    "",
    "./3DLSystems PITCH YAW ROLL ITER INIT COLORS... RULES...",
    "",
    "  PITCH  - The angle to be used for pitch rotations (+/-)",
    "  YAW    - The angle to be used for yaw rotations (*//)",
    "  ROLL   - The angle to be used for roll rotations (&/|)",
    "  ITER   - The number of iterations to go through.",
    "  INIT   - The initial string to expand.",
    "  COLORS - The colors in which edges should be draw for a character.",
    "           Each color has the form 'C#RRGGBB' where C is the character",
    "           and RRGGBB is a hex triplet for the color. If no color is",
    "           specified, the character will be rendered as white.",
    "  RULES  - The expansion rules for the L-system. Each rule has the form",
    "           C->STRING where C is the character to expand and STRING is ",
    "           the result of expanding it.",
    "",
    "All angles are specified in degrees. It's hard to enter pi's as a",
    "parameter.",
    "",
    "The following special characters exist:",
    "",
    "  + - Increases the pitch angle",
    "  - - Decreases the pitch angle",
    "  * - Increases the yaw angle",
    "  / - Decreases the yaw angle",
    "  & - Increases the roll angle",
    "  | - Decreases the roll angle",
    "  [ - Detaches",
    "  ] - Ends a detaches sequence",
    "",
    "Any character which isn't one of these characters or a lowercase",
    "character will be ignored by the rendering. They can be useful as",
    "variables during expansion.",
    "",
    "While running the following keys can be used to affect the animation:",
    "",
    "  +     - Zoom in",
    "  -     - Zoom out",
    "  Up    - Rotate upwards",
    "  Down  - Rotate downwards",
    "  Left  - Rotate left",
    "  Right - Rotate right",
    "  >     - Speed up rotation",
    "  <     - Slow down rotation"
  ]
help :: String
help = unlines [
    "Usage:",
    "",
    "./3DLSystems PITCH YAW ROLL ITER INIT COLORS... RULES...",
    "",
    "  PITCH  - The angle to be used for pitch rotations (+/-)",
    "  YAW    - The angle to be used for yaw rotations (*//)",
    "  ROLL   - The angle to be used for roll rotations (&/|)",
    "  ITER   - The number of iterations to go through.",
    "  INIT   - The initial string to expand.",
    "  COLORS - The colors in which edges should be draw for a character.",
    "           Each color has the form 'C#RRGGBB' where C is the character",
    "           and RRGGBB is a hex triplet for the color. If no color is",
    "           specified, the character will be rendered as white.",
    "  RULES  - The expansion rules for the L-system. Each rule has the form",
    "           C->STRING where C is the character to expand and STRING is ",
    "           the result of expanding it.",
    "",
    "All angles are specified in degrees. It's hard to enter pi's as a",
    "parameter.",
    "",
    "The following special characters exist:",
    "",
    "  + - Increases the pitch angle",
    "  - - Decreases the pitch angle",
    "  * - Increases the yaw angle",
    "  / - Decreases the yaw angle",
    "  & - Increases the roll angle",
    "  | - Decreases the roll angle",
    "  [ - Detaches",
    "  ] - Ends a detaches sequence",
    "",
    "Any character which isn't one of these characters or a lowercase",
    "character will be ignored by the rendering. They can be useful as",
    "variables during expansion.",
    "",
    "While running the following keys can be used to affect the animation:",
    "",
    "  +     - Zoom in",
    "  -     - Zoom out",
    "  Up    - Rotate upwards",
    "  Down  - Rotate downwards",
    "  Left  - Rotate left",
    "  Right - Rotate right",
    "  >     - Speed up rotation",
    "  <     - Slow down rotation"
  ]
help = unlines [
    "Usage:",
    "",
    "./3DLSystems PITCH YAW ROLL ITER INIT COLORS... RULES...",
    "",
    "  PITCH  - The angle to be used for pitch rotations (+/-)",
    "  YAW    - The angle to be used for yaw rotations (*//)",
    "  ROLL   - The angle to be used for roll rotations (&/|)",
    "  ITER   - The number of iterations to go through.",
    "  INIT   - The initial string to expand.",
    "  COLORS - The colors in which edges should be draw for a character.",
    "           Each color has the form 'C#RRGGBB' where C is the character",
    "           and RRGGBB is a hex triplet for the color. If no color is",
    "           specified, the character will be rendered as white.",
    "  RULES  - The expansion rules for the L-system. Each rule has the form",
    "           C->STRING where C is the character to expand and STRING is ",
    "           the result of expanding it.",
    "",
    "All angles are specified in degrees. It's hard to enter pi's as a",
    "parameter.",
    "",
    "The following special characters exist:",
    "",
    "  + - Increases the pitch angle",
    "  - - Decreases the pitch angle",
    "  * - Increases the yaw angle",
    "  / - Decreases the yaw angle",
    "  & - Increases the roll angle",
    "  | - Decreases the roll angle",
    "  [ - Detaches",
    "  ] - Ends a detaches sequence",
    "",
    "Any character which isn't one of these characters or a lowercase",
    "character will be ignored by the rendering. They can be useful as",
    "variables during expansion.",
    "",
    "While running the following keys can be used to affect the animation:",
    "",
    "  +     - Zoom in",
    "  -     - Zoom out",
    "  Up    - Rotate upwards",
    "  Down  - Rotate downwards",
    "  Left  - Rotate left",
    "  Right - Rotate right",
    "  >     - Speed up rotation",
    "  <     - Slow down rotation"
  ]