constree :: Parser Constree
constree
  =   try (string "Nil" *> pure Nil)
  <|> try (Cons <$> (string "Cons" *> spaces1 *> constree <* spaces1) <*> constree)
  <?> "some constree"
constree :: Parser Constree
constree
  =   try (string "Nil" *> pure Nil)
  <|> try (Cons <$> (string "Cons" *> spaces1 *> constree <* spaces1) <*> constree)
  <?> "some constree"
constree
  =   try (string "Nil" *> pure Nil)
  <|> try (Cons <$> (string "Cons" *> spaces1 *> constree <* spaces1) <*> constree)
  <?> "some constree"