prefixSection :: Char -> Parser (Text, Mustache)
prefixSection prefix = do
    sectionName <- mustache $ char prefix >> key >>= return . unpack
    n           <- optionMaybe newline
    mustache    <- manyTill parseMustacheNode $ lookAhead $ try $ sectionEnd sectionName
    _           <- sectionEnd sectionName
    case n of
         Just _ -> newline >> return ()
         Nothing   -> return ()
    return (pack sectionName, mustache)
      where sectionEnd name = mustache $ char '/' >> string name
prefixSection :: Char -> Parser (Text, Mustache)
prefixSection prefix = do
    sectionName <- mustache $ char prefix >> key >>= return . unpack
    n           <- optionMaybe newline
    mustache    <- manyTill parseMustacheNode $ lookAhead $ try $ sectionEnd sectionName
    _           <- sectionEnd sectionName
    case n of
         Just _ -> newline >> return ()
         Nothing   -> return ()
    return (pack sectionName, mustache)
      where sectionEnd name = mustache $ char '/' >> string name
prefixSection prefix = do
    sectionName <- mustache $ char prefix >> key >>= return . unpack
    n           <- optionMaybe newline
    mustache    <- manyTill parseMustacheNode $ lookAhead $ try $ sectionEnd sectionName
    _           <- sectionEnd sectionName
    case n of
         Just _ -> newline >> return ()
         Nothing   -> return ()
    return (pack sectionName, mustache)
      where sectionEnd name = mustache $ char '/' >> string name