parseProgram :: String -> Try Program
parseProgram input = case runParser program "Program Parser" input of
  Left err -> Left $ ParseError err
  Right p  -> Right p
parseProgram :: String -> Try Program
parseProgram input = case runParser program "Program Parser" input of
  Left err -> Left $ ParseError err
  Right p  -> Right p
parseProgram input = case runParser program "Program Parser" input of
  Left err -> Left $ ParseError err
  Right p  -> Right p