Pandoc
  ( Meta
    { unMeta = fromList
      [
        ( "author"
        , MetaList
          [ MetaInlines
            [ Str "John", Space, Str "MacFarlane" ]
          , MetaInlines
            [ Str "Anonymous" ]
          ]
        )
      ,
        ( "date"
        , MetaInlines
          [ Str "July", Space, Str "17,", Space, Str "2006" ]
        )
      ,
        ( "revision", MetaBlocks [ Para [ Str "3" ] ] )
      ,
        ( "subtitle", MetaInlines [ Str "Subtitle" ] )
      ,
        ( "title"
        , MetaInlines
          [ Str "Pandoc", Space, Str "Test", Space, Str "Suite" ]
        )
      ]
    }
  )
  [ Header 1
    ( "level-one-header", [], [] )
    [ Str "Level", Space, Str "one", Space, Str "header" ]
  , Para
    [ Str "This"
    , Space
    , Str "is"
    , Space
    , Str "a"
    , Space
    , Str "set"
    , Space
    , Str "of"
    , Space
    , Str "tests"
    , Space
    , Str "for"
    , Space
    , Str "pandoc."
    , Space
    , Str "Most"
    , Space
    , Str "of"
    , Space
    , Str "them"
    , Space
    , Str "are"
    , Space
    , Str "adapted"
    , Space
    , Str "from"
    , SoftBreak
    , Str "John"
    , Space
    , Str "Gruber\8217s"
    , Space
    , Str "markdown"
    , Space
    , Str "test"
    , Space
    , Str "suite."
    ]
  , Header 2
    ( "level-two-header", [], [] )
    [ Str "Level", Space, Str "two", Space, Str "header" ]
  , Header 3
    ( "level-three", [], [] )
    [ Str "Level", Space, Str "three" ]
  , Header 4
    ( "level-four-with-emphasis", [], [] )
    [ Str "Level"
    , Space
    , Str "four"
    , Space
    , Str "with"
    , Space
    , Emph
      [ Str "emphasis" ]
    ]
  , Header 5
    ( "level-five", [], [] )
    [ Str "Level", Space, Str "five" ]
  , Header 1
    ( "paragraphs", [], [] )
    [ Str "Paragraphs" ]
  , Para
    [ Str "Here\8217s"
    , Space
    , Str "a"
    , Space
    , Str "regular"
    , Space
    , Str "paragraph."
    ]
  , Para
    [ Str "In"
    , Space
    , Str "Markdown"
    , Space
    , Str "1.0.0"
    , Space
    , Str "and"
    , Space
    , Str "earlier."
    , Space
    , Str "Version"
    , SoftBreak
    , Str "8."
    , Space
    , Str "This"
    , Space
    , Str "line"
    , Space
    , Str "turns"
    , Space
    , Str "into"
    , Space
    , Str "a"
    , Space
    , Str "list"
    , Space
    , Str "item."
    , SoftBreak
    , Str "Because"
    , Space
    , Str "a"
    , Space
    , Str "hard-wrapped"
    , Space
    , Str "line"
    , Space
    , Str "in"
    , Space
    , Str "the"
    , SoftBreak
    , Str "middle"
    , Space
    , Str "of"
    , Space
    , Str "a"
    , Space
    , Str "paragraph"
    , Space
    , Str "looked"
    , Space
    , Str "like"
    , Space
    , Str "a"
    , SoftBreak
    , Str "list"
    , Space
    , Str "item."
    ]
  , Para
    [ Str "Here\8217s"
    , Space
    , Str "one"
    , Space
    , Str "with"
    , Space
    , Str "a"
    , Space
    , Str "bullet."
    , SoftBreak
    , Str "*"
    , Space
    , Str "criminey."
    ]
  , Para
    [ Str "Horizontal", Space, Str "rule:" ]
  , HorizontalRule
  , Para
    [ Str "Another:" ]
  , HorizontalRule
  , Header 1
    ( "block-quotes", [], [] )
    [ Str "Block", Space, Str "Quotes" ]
  , Para
    [ Str "Here\8217s"
    , Space
    , Str "a"
    , Space
    , Str "block"
    , Space
    , Str "quote:"
    ]
  , BlockQuote
    [ Para
      [ Str "This"
      , Space
      , Str "is"
      , Space
      , Str "a"
      , Space
      , Str "block"
      , Space
      , Str "quote."
      , SoftBreak
      , Str "It"
      , Space
      , Str "is"
      , Space
      , Str "pretty"
      , Space
      , Str "short."
      ]
    ]
  , Para
    [ Str "Here\8217s"
    , Space
    , Str "another,"
    , Space
    , Str "differently"
    , Space
    , Str "indented:"
    ]
  , BlockQuote
    [ Para
      [ Str "This"
      , Space
      , Str "is"
      , Space
      , Str "a"
      , Space
      , Str "block"
      , Space
      , Str "quote."
      , SoftBreak
      , Str "It\8217s"
      , Space
      , Str "indented"
      , Space
      , Str "with"
      , Space
      , Str "a"
      , Space
      , Str "tab."
      ]
    , Para
      [ Str "Code"
      , Space
      , Str "in"
      , Space
      , Str "a"
      , Space
      , Str "block"
      , Space
      , Str "quote:"
      ]
    , CodeBlock
      ( "", [], [] ) "sub status {\n    print \"working\";\n}"
    , Para
      [ Str "List"
      , Space
      , Str "in"
      , Space
      , Str "a"
      , Space
      , Str "block"
      , Space
      , Str "quote:"
      ]
    , OrderedList
      ( 1, Decimal, Period )
      [
        [ Plain [ Str "item", Space, Str "one" ] ]
      ,
        [ Plain [ Str "item", Space, Str "two" ] ]
      ]
    , Para
      [ Str "Nested", Space, Str "block", Space, Str "quotes:" ]
    , BlockQuote
      [ Para [ Str "nested" ], BlockQuote [ Para [ Str "nested" ] ] ]
    ]
  , Header 1
    ( "code-blocks", [], [] )
    [ Str "Code", Space, Str "Blocks" ]
  , Para
    [ Str "Code:" ]
  , CodeBlock
    ( ""
    , []
    , []
    ) "---- (should be four hyphens)\n\nsub status {\n    print \"working\";\n}"
  , CodeBlock
    ( "", [], [] ) "this code block is indented by one tab"
  , Para
    [ Str "And:" ]
  , CodeBlock
    ( ""
    , []
    , []
    ) "this block is indented by two tabs\n\nThese should not be escaped:  \\$ \\\\ \\> \\[ \\{"
  , Para
    [ Str "And:" ]
  , CodeBlock
    ( "", [ "python" ], [] ) "def my_function(x):\n    return x + 1"
  , Para
    [ Str "If"
    , Space
    , Str "we"
    , Space
    , Str "use"
    , Space
    , Str "the"
    , Space
    , Str "highlight"
    , Space
    , Str "directive,"
    , Space
    , Str "we"
    , Space
    , Str "can"
    , Space
    , Str "specify"
    , Space
    , Str "a"
    , Space
    , Str "default"
    , Space
    , Str "language"
    , SoftBreak
    , Str "for"
    , Space
    , Str "literate"
    , Space
    , Str "blocks."
    ]
  , CodeBlock
    ( ""
    , [ "haskell" ]
    , []
    ) "-- this code is in haskell\ndata Tree = Leaf | Node Tree Tree"
  , CodeBlock
    ( ""
    , [ "haskell" ]
    , []
    ) "-- this code is in haskell too\ndata Nat = Zero | Succ Nat"
  , CodeBlock
    ( ""
    , [ "javascript" ]
    , []
    ) "-- this code is in javascript\nlet f = (x, y) => x + y"
  , Header 1
    ( "lists", [], [] )
    [ Str "Lists" ]
  , Header 2
    ( "unordered", [], [] )
    [ Str "Unordered" ]
  , Para
    [ Str "Asterisks", Space, Str "tight:" ]
  , BulletList
    [
      [ Plain [ Str "asterisk", Space, Str "1" ] ]
    ,
      [ Plain [ Str "asterisk", Space, Str "2" ] ]
    ,
      [ Plain [ Str "asterisk", Space, Str "3" ] ]
    ]
  , Para
    [ Str "Asterisks", Space, Str "loose:" ]
  , BulletList
    [
      [ Plain [ Str "asterisk", Space, Str "1" ] ]
    ,
      [ Plain [ Str "asterisk", Space, Str "2" ] ]
    ,
      [ Plain [ Str "asterisk", Space, Str "3" ] ]
    ]
  , Para
    [ Str "Pluses", Space, Str "tight:" ]
  , BulletList
    [
      [ Plain [ Str "Plus", Space, Str "1" ] ]
    ,
      [ Plain [ Str "Plus", Space, Str "2" ] ]
    ,
      [ Plain [ Str "Plus", Space, Str "3" ] ]
    ]
  , Para
    [ Str "Pluses", Space, Str "loose:" ]
  , BulletList
    [
      [ Plain [ Str "Plus", Space, Str "1" ] ]
    ,
      [ Plain [ Str "Plus", Space, Str "2" ] ]
    ,
      [ Plain [ Str "Plus", Space, Str "3" ] ]
    ]
  , Para
    [ Str "Minuses", Space, Str "tight:" ]
  , BulletList
    [
      [ Plain [ Str "Minus", Space, Str "1" ] ]
    ,
      [ Plain [ Str "Minus", Space, Str "2" ] ]
    ,
      [ Plain [ Str "Minus", Space, Str "3" ] ]
    ]
  , Para
    [ Str "Minuses", Space, Str "loose:" ]
  , BulletList
    [
      [ Plain [ Str "Minus", Space, Str "1" ] ]
    ,
      [ Plain [ Str "Minus", Space, Str "2" ] ]
    ,
      [ Plain [ Str "Minus", Space, Str "3" ] ]
    ]
  , Header 2
    ( "ordered", [], [] )
    [ Str "Ordered" ]
  , Para
    [ Str "Tight:" ]
  , OrderedList
    ( 1, Decimal, Period )
    [
      [ Plain [ Str "First" ] ]
    ,
      [ Plain [ Str "Second" ] ]
    ,
      [ Plain [ Str "Third" ] ]
    ]
  , Para
    [ Str "and:" ]
  , OrderedList
    ( 1, Decimal, Period )
    [
      [ Plain [ Str "One" ] ]
    ,
      [ Plain [ Str "Two" ] ]
    ,
      [ Plain [ Str "Three" ] ]
    ]
  , Para
    [ Str "Loose", Space, Str "using", Space, Str "tabs:" ]
  , OrderedList
    ( 1, Decimal, Period )
    [
      [ Plain [ Str "First" ] ]
    ,
      [ Plain [ Str "Second" ] ]
    ,
      [ Plain [ Str "Third" ] ]
    ]
  , Para
    [ Str "and", Space, Str "using", Space, Str "spaces:" ]
  , OrderedList
    ( 1, Decimal, Period )
    [
      [ Plain [ Str "One" ] ]
    ,
      [ Plain [ Str "Two" ] ]
    ,
      [ Plain [ Str "Three" ] ]
    ]
  , Para
    [ Str "Multiple", Space, Str "paragraphs:" ]
  , OrderedList
    ( 1, Decimal, Period )
    [
      [ Para
        [ Str "Item", Space, Str "1,", Space, Str "graf", Space, Str "one." ]
      , Para
        [ Str "Item"
        , Space
        , Str "1."
        , Space
        , Str "graf"
        , Space
        , Str "two."
        , Space
        , Str "The"
        , Space
        , Str "quick"
        , Space
        , Str "brown"
        , Space
        , Str "fox"
        , Space
        , Str "jumped"
        , Space
        , Str "over"
        , Space
        , Str "the"
        , Space
        , Str "lazy"
        , Space
        , Str "dog\8217s"
        , SoftBreak
        , Str "back."
        ]
      ]
    ,
      [ Para [ Str "Item", Space, Str "2." ] ]
    ,
      [ Para [ Str "Item", Space, Str "3." ] ]
    ]
  , Para
    [ Str "Nested:" ]
  , BulletList
    [
      [ Plain
        [ Str "Tab" ]
      , BulletList
        [ [ Plain [ Str "Tab" ], BulletList [ [ Plain [ Str "Tab" ] ] ] ] ]
      ]
    ]
  , Para
    [ Str "Here\8217s", Space, Str "another:" ]
  , OrderedList
    ( 1, Decimal, Period )
    [
      [ Para [ Str "First" ] ]
    ,
      [ Para
        [ Str "Second:" ]
      , BlockQuote
        [ BulletList
          [
            [ Plain [ Str "Fee" ] ]
          ,
            [ Plain [ Str "Fie" ] ]
          ,
            [ Plain [ Str "Foe" ] ]
          ]
        ]
      ]
    ,
      [ Para [ Str "Third" ] ]
    ]
  , Header 2
    ( "fancy-list-markers", [], [] )
    [ Str "Fancy", Space, Str "list", Space, Str "markers" ]
  , OrderedList
    ( 2, Decimal, TwoParens )
    [
      [ Para [ Str "begins", Space, Str "with", Space, Str "2" ] ]
    ,
      [ Para
        [ Str "and", Space, Str "now", Space, Str "3" ]
      , Para
        [ Str "with", Space, Str "a", Space, Str "continuation" ]
      , OrderedList
        ( 4, LowerRoman, Period )
        [
          [ Plain
            [ Str "sublist"
            , Space
            , Str "with"
            , Space
            , Str "roman"
            , Space
            , Str "numerals,"
            , Space
            , Str "starting"
            , Space
            , Str "with"
            , Space
            , Str "4"
            ]
          ]
        ,
          [ Plain
            [ Str "more", Space, Str "items" ]
          , OrderedList
            ( 1, UpperAlpha, TwoParens )
            [
              [ Plain [ Str "a", Space, Str "subsublist" ] ]
            ,
              [ Plain [ Str "a", Space, Str "subsublist" ] ]
            ]
          ]
        ]
      ]
    ]
  , Para
    [ Str "Nesting:" ]
  , OrderedList
    ( 1, UpperAlpha, Period )
    [
      [ Plain
        [ Str "Upper", Space, Str "Alpha" ]
      , OrderedList
        ( 1, UpperRoman, Period )
        [
          [ Plain
            [ Str "Upper", Space, Str "Roman." ]
          , OrderedList
            ( 6, Decimal, TwoParens )
            [
              [ Plain
                [ Str "Decimal"
                , Space
                , Str "start"
                , Space
                , Str "with"
                , Space
                , Str "6"
                ]
              , OrderedList
                ( 3, LowerAlpha, OneParen )
                [
                  [ Plain
                    [ Str "Lower"
                    , Space
                    , Str "alpha"
                    , Space
                    , Str "with"
                    , Space
                    , Str "paren"
                    ]
                  ]
                ]
              ]
            ]
          ]
        ]
      ]
    ]
  , Para
    [ Str "Autonumbering:" ]
  , OrderedList
    ( 1, DefaultStyle, DefaultDelim )
    [
      [ Plain [ Str "Autonumber." ] ]
    ,
      [ Plain
        [ Str "More." ]
      , OrderedList
        ( 1, DefaultStyle, DefaultDelim )
        [ [ Plain [ Str "Nested." ] ] ]
      ]
    ]
  , Para
    [ Str "Autonumbering"
    , Space
    , Str "with"
    , Space
    , Str "explicit"
    , Space
    , Str "start:"
    ]
  , OrderedList
    ( 4, LowerAlpha, TwoParens )
    [
      [ Plain [ Str "item", Space, Str "1" ] ]
    ,
      [ Plain [ Str "item", Space, Str "2" ] ]
    ]
  , Header 2
    ( "definition", [], [] )
    [ Str "Definition" ]
  , DefinitionList
    [
      (
        [ Str "term", Space, Str "1" ]
      ,
        [ [ Para [ Str "Definition", Space, Str "1." ] ] ]
      )
    ,
      (
        [ Str "term", Space, Str "2" ]
      ,
        [
          [ Para
            [ Str "Definition"
            , Space
            , Str "2,"
            , Space
            , Str "paragraph"
            , Space
            , Str "1."
            ]
          , Para
            [ Str "Definition"
            , Space
            , Str "2,"
            , Space
            , Str "paragraph"
            , Space
            , Str "2."
            ]
          ]
        ]
      )
    ,
      (
        [ Str "term", Space, Str "with", Space, Emph [ Str "emphasis" ] ]
      ,
        [ [ Para [ Str "Definition", Space, Str "3." ] ] ]
      )
    ]
  , Header 1
    ( "field-lists", [], [] )
    [ Str "Field", Space, Str "Lists" ]
  , BlockQuote
    [ DefinitionList
      [
        (
          [ Str "address" ]
        ,
          [ [ Para [ Str "61", Space, Str "Main", Space, Str "St." ] ] ]
        )
      ,
        (
          [ Str "city" ]
        ,
          [
            [ Para
              [ Emph
                [ Str "Nowhere" ]
              , Str ","
              , Space
              , Str "MA,"
              , SoftBreak
              , Str "USA"
              ]
            ]
          ]
        )
      ,
        ( [ Str "phone" ], [ [ Para [ Str "123-4567" ] ] ] )
      ]
    ]
  , DefinitionList
    [
      (
        [ Str "address" ]
      ,
        [ [ Para [ Str "61", Space, Str "Main", Space, Str "St." ] ] ]
      )
    ,
      (
        [ Str "city" ]
      ,
        [
          [ Para
            [ Emph
              [ Str "Nowhere" ]
            , Str ","
            , Space
            , Str "MA,"
            , SoftBreak
            , Str "USA"
            ]
          ]
        ]
      )
    ,
      ( [ Str "phone" ], [ [ Para [ Str "123-4567" ] ] ] )
    ]
  , Header 1
    ( "html-blocks", [], [] )
    [ Str "HTML", Space, Str "Blocks" ]
  , Para
    [ Str "Simple"
    , Space
    , Str "block"
    , Space
    , Str "on"
    , Space
    , Str "one"
    , Space
    , Str "line:"
    ]
  , RawBlock
    ( Format "html" ) "<div>foo</div>"
  , Para
    [ Str "Now,", Space, Str "nested:" ]
  , RawBlock
    ( Format "html" ) "<div>\n    <div>\n        <div>\n            foo\n        </div>\n    </div>\n</div>"
  , Header 1
    ( "latex-block", [], [] )
    [ Str "LaTeX", Space, Str "Block" ]
  , RawBlock
    ( Format "latex" ) "\\begin{tabular}{|l|l|}\\hline\nAnimal & Number \\\\ \\hline\nDog    & 2      \\\\\nCat    & 1      \\\\ \\hline\n\\end{tabular}"
  , Header 1
    ( "inline-markup", [], [] )
    [ Str "Inline", Space, Str "Markup" ]
  , Para
    [ Str "This"
    , Space
    , Str "is"
    , Space
    , Emph
      [ Str "emphasized" ]
    , Str "."
    , Space
    , Str "This"
    , Space
    , Str "is"
    , Space
    , Strong
      [ Str "strong" ]
    , Str "."
    ]
  , Para
    [ Str "This"
    , Space
    , Str "is"
    , Space
    , Str "code:"
    , Space
    , Code
      ( "", [], [] ) ">"
    , Str ","
    , Space
    , Code
      ( "", [], [] ) "$"
    , Str ","
    , Space
    , Code
      ( "", [], [] ) "\\"
    , Str ","
    , Space
    , Code
      ( "", [], [] ) "\\$"
    , Str ","
    , Space
    , Code
      ( "", [], [] ) "<html>"
    , Str "."
    ]
  , Para
    [ Str "This"
    , Space
    , Str "is"
    , Subscript
      [ Str "subscripted" ]
    , Space
    , Str "and"
    , Space
    , Str "this"
    , Space
    , Str "is"
    , Space
    , Superscript
      [ Str "superscripted" ]
    , Str "."
    ]
  , Header 1
    ( "special-characters", [], [] )
    [ Str "Special", Space, Str "Characters" ]
  , Para
    [ Str "Here", Space, Str "is", Space, Str "some", Space, Str "unicode:" ]
  , BulletList
    [
      [ Plain [ Str "I", Space, Str "hat:", Space, Str "\206" ] ]
    ,
      [ Plain [ Str "o", Space, Str "umlaut:", Space, Str "\246" ] ]
    ,
      [ Plain [ Str "section:", Space, Str "\167" ] ]
    ,
      [ Plain [ Str "set", Space, Str "membership:", Space, Str "\8712" ] ]
    ,
      [ Plain [ Str "copyright:", Space, Str "\169" ] ]
    ]
  , Para
    [ Str "AT&T"
    , Space
    , Str "has"
    , Space
    , Str "an"
    , Space
    , Str "ampersand"
    , Space
    , Str "in"
    , Space
    , Str "their"
    , Space
    , Str "name."
    ]
  , Para
    [ Str "This", Space, Str "&", Space, Str "that." ]
  , Para
    [ Str "4", Space, Str "<", Space, Str "5." ]
  , Para
    [ Str "6", Space, Str ">", Space, Str "5." ]
  , Para
    [ Str "Backslash:", Space, Str "\\" ]
  , Para
    [ Str "Backtick:", Space, Str "`" ]
  , Para
    [ Str "Asterisk:", Space, Str "*" ]
  , Para
    [ Str "Underscore:", Space, Str "_" ]
  , Para
    [ Str "Left", Space, Str "brace:", Space, Str "{" ]
  , Para
    [ Str "Right", Space, Str "brace:", Space, Str "}" ]
  , Para
    [ Str "Left", Space, Str "bracket:", Space, Str "[" ]
  , Para
    [ Str "Right", Space, Str "bracket:", Space, Str "]" ]
  , Para
    [ Str "Left", Space, Str "paren:", Space, Str "(" ]
  , Para
    [ Str "Right", Space, Str "paren:", Space, Str ")" ]
  , Para
    [ Str "Greater-than:", Space, Str ">" ]
  , Para
    [ Str "Hash:", Space, Str "#" ]
  , Para
    [ Str "Period:", Space, Str "." ]
  , Para
    [ Str "Bang:", Space, Str "!" ]
  , Para
    [ Str "Plus:", Space, Str "+" ]
  , Para
    [ Str "Minus:", Space, Str "-" ]
  , Header 1
    ( "links", [], [] )
    [ Str "Links" ]
  , Para
    [ Str "Explicit:"
    , Space
    , Str "a"
    , Space
    , Link
      ( "", [], [] )
      [ Str "URL" ]
      ( "/url/", "" )
    , Str "."
    ]
  , Para
    [ Str "Explicit"
    , Space
    , Str "with"
    , Space
    , Str "no"
    , Space
    , Str "label:"
    , Space
    , Link
      ( "", [], [] )
      [ Str "foo" ]
      ( "foo", "" )
    , Str "."
    ]
  , Para
    [ Str "Two"
    , Space
    , Str "anonymous"
    , Space
    , Str "links:"
    , Space
    , Link
      ( "", [], [] )
      [ Str "the", Space, Str "first" ]
      ( "/url1/", "" )
    , Space
    , Str "and"
    , Space
    , Link
      ( "", [], [] )
      [ Str "the", Space, Str "second" ]
      ( "/url2/", "" )
    ]
  , Para
    [ Str "Reference"
    , Space
    , Str "links:"
    , Space
    , Link
      ( "", [], [] )
      [ Str "link1" ]
      ( "/url1/", "" )
    , Space
    , Str "and"
    , Space
    , Link
      ( "", [], [] )
      [ Str "link2" ]
      ( "/url2/", "" )
    , Space
    , Str "and"
    , Space
    , Link
      ( "", [], [] )
      [ Str "link1" ]
      ( "/url1/", "" )
    , Space
    , Str "again."
    ]
  , Para
    [ Str "Another"
    , Space
    , Link
      ( "", [], [] )
      [ Str "style"
      , Space
      , Str "of"
      , Space
      , Str "reference"
      , Space
      , Str "link"
      ]
      ( "/url1/", "" )
    , Str "."
    ]
  , Para
    [ Str "Here\8217s"
    , Space
    , Str "a"
    , Space
    , Link
      ( "", [], [] )
      [ Str "link"
      , Space
      , Str "with"
      , Space
      , Str "an"
      , Space
      , Str "ampersand"
      , Space
      , Str "in"
      , Space
      , Str "the"
      , Space
      , Str "URL"
      ]
      ( "http://example.com/?foo=1&bar=2", "" )
    , Str "."
    ]
  , Para
    [ Str "Here\8217s"
    , Space
    , Str "a"
    , Space
    , Str "link"
    , Space
    , Str "with"
    , Space
    , Str "an"
    , Space
    , Str "amersand"
    , Space
    , Str "in"
    , Space
    , Str "the"
    , Space
    , Str "link"
    , Space
    , Str "text:"
    , Space
    , Link
      ( "", [], [] )
      [ Str "AT&T" ]
      ( "/url/", "" )
    , Str "."
    ]
  , Para
    [ Str "Autolinks:"
    , Space
    , Link
      ( "", [], [] )
      [ Str "http://example.com/?foo=1&bar=2" ]
      ( "http://example.com/?foo=1&bar=2", "" )
    , Space
    , Str "and"
    , Space
    , Link
      ( "", [], [] )
      [ Str "nobody@nowhere.net" ]
      ( "mailto:nobody@nowhere.net", "" )
    , Str "."
    ]
  , Para
    [ Str "But", Space, Str "not", Space, Str "here:" ]
  , CodeBlock
    ( "", [], [] ) "http://example.com/"
  , Header 1
    ( "images", [], [] )
    [ Str "Images" ]
  , Para
    [ Str "From"
    , Space
    , Quoted DoubleQuote
      [ Str "Voyage", Space, Str "dans", Space, Str "la", Space, Str "Lune" ]
    , Space
    , Str "by"
    , Space
    , Str "Georges"
    , Space
    , Str "Melies"
    , Space
    , Str "(1902):"
    ]
  , Para
    [ Image ( "", [], [] ) [ Str "image" ] ( "lalune.jpg", "" ) ]
  , Para
    [ Image
      ( "", [], [ ( "height", "2343px" ) ] )
      [ Str "Voyage dans la Lune" ]
      ( "lalune.jpg", "" )
    ]
  , Para
    [ Str "Here"
    , Space
    , Str "is"
    , Space
    , Str "a"
    , Space
    , Str "movie"
    , Space
    , Image
      ( "", [], [] )
      [ Str "movie" ]
      ( "movie.jpg", "" )
    , Space
    , Str "icon."
    ]
  , Para
    [ Str "And"
    , Space
    , Str "an"
    , Space
    , Link
      ( "", [], [] )
      [ Image ( "", [], [] ) [ Str "A movie" ] ( "movie.jpg", "" ) ]
      ( "/url", "" )
    , Str "."
    ]
  , Header 1
    ( "comments", [], [] )
    [ Str "Comments" ]
  , Para
    [ Str "First", Space, Str "paragraph" ]
  , Para
    [ Str "Another", Space, Str "paragraph" ]
  , Para
    [ Str "A", Space, Str "third", Space, Str "paragraph" ]
  , Header 1
    ( "line-blocks", [], [] )
    [ Str "Line", Space, Str "blocks" ]
  , LineBlock
    [
      [ Str "But"
      , Space
      , Str "can"
      , Space
      , Str "a"
      , Space
      , Str "bee"
      , Space
      , Str "be"
      , Space
      , Str "said"
      , Space
      , Str "to"
      , Space
      , Str "be"
      ]
    ,
      [ Str "\160\160\160\160or"
      , Space
      , Str "not"
      , Space
      , Str "to"
      , Space
      , Str "be"
      , Space
      , Str "an"
      , Space
      , Str "entire"
      , Space
      , Str "bee,"
      ]
    ,
      [ Str "\160\160\160\160\160\160\160\160when"
      , Space
      , Str "half"
      , Space
      , Str "the"
      , Space
      , Str "bee"
      , Space
      , Str "is"
      , Space
      , Str "not"
      , Space
      , Str "a"
      , Space
      , Str "bee,"
      ]
    ,
      [ Str "\160\160\160\160\160\160\160\160\160\160\160\160due"
      , Space
      , Str "to"
      , Space
      , Str "some"
      , Space
      , Str "ancient"
      , Space
      , Str "injury?"
      ]
    , []
    ,
      [ Str "Continuation", Space, Str "line" ]
    ,
      [ Str "\160\160and", Space, Str "another" ]
    ]
  , Header 1
    ( "simple-tables", [], [] )
    [ Str "Simple", Space, Str "Tables" ]
  , Table
    ( "", [], [] )
    ( Caption Nothing [] )
    [
      ( AlignDefault, ColWidthDefault )
    ,
      ( AlignDefault, ColWidthDefault )
    ,
      ( AlignDefault, ColWidthDefault )
    ]
    ( TableHead
      ( "", [], [] )
      [ Row
        ( "", [], [] )
        [ Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "col", Space, Str "1" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "col", Space, Str "2" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "col", Space, Str "3" ] ]
        ]
      ]
    )
    [ TableBody
      ( "", [], [] )
      ( RowHeadColumns 0 ) []
      [ Row
        ( "", [], [] )
        [ Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "r1", Space, Str "a" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "b" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "c" ] ]
        ]
      , Row
        ( "", [], [] )
        [ Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "r2", Space, Str "d" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "e" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "f" ] ]
        ]
      ]
    ]
    ( TableFoot ( "", [], [] ) [] )
  , Para
    [ Str "Headless" ]
  , Table
    ( "", [], [] )
    ( Caption Nothing [] )
    [
      ( AlignDefault, ColWidthDefault )
    ,
      ( AlignDefault, ColWidthDefault )
    ,
      ( AlignDefault, ColWidthDefault )
    ]
    ( TableHead
      ( "", [], [] )
      [ Row
        ( "", [], [] )
        [ Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 ) []
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 ) []
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 ) []
        ]
      ]
    )
    [ TableBody
      ( "", [], [] )
      ( RowHeadColumns 0 ) []
      [ Row
        ( "", [], [] )
        [ Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "r1", Space, Str "a" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "b" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "c" ] ]
        ]
      , Row
        ( "", [], [] )
        [ Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "r2", Space, Str "d" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "e" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "f" ] ]
        ]
      ]
    ]
    ( TableFoot ( "", [], [] ) [] )
  , Header 1
    ( "grid-tables", [], [] )
    [ Str "Grid", Space, Str "Tables" ]
  , Table
    ( "", [], [] )
    ( Caption Nothing [] )
    [
      ( AlignDefault, ColWidth 0.2375 )
    ,
      ( AlignDefault, ColWidth 0.15 )
    ,
      ( AlignDefault, ColWidth 0.1625 )
    ]
    ( TableHead
      ( "", [], [] )
      [ Row
        ( "", [], [] )
        [ Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "col", Space, Str "1" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "col", Space, Str "2" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "col", Space, Str "3" ] ]
        ]
      ]
    )
    [ TableBody
      ( "", [], [] )
      ( RowHeadColumns 0 ) []
      [ Row
        ( "", [], [] )
        [ Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain
            [ Str "r1", Space, Str "a", SoftBreak, Str "r1", Space, Str "bis" ]
          ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "b", SoftBreak, Str "b", Space, Str "2" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "c", SoftBreak, Str "c", Space, Str "2" ] ]
        ]
      , Row
        ( "", [], [] )
        [ Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "r2", Space, Str "d" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "e" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "f" ] ]
        ]
      ]
    ]
    ( TableFoot ( "", [], [] ) [] )
  , Para
    [ Str "Headless" ]
  , Table
    ( "", [], [] )
    ( Caption Nothing [] )
    [
      ( AlignDefault, ColWidth 0.2375 )
    ,
      ( AlignDefault, ColWidth 0.15 )
    ,
      ( AlignDefault, ColWidth 0.1625 )
    ]
    ( TableHead ( "", [], [] ) [] )
    [ TableBody
      ( "", [], [] )
      ( RowHeadColumns 0 ) []
      [ Row
        ( "", [], [] )
        [ Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain
            [ Str "r1", Space, Str "a", SoftBreak, Str "r1", Space, Str "bis" ]
          ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "b", SoftBreak, Str "b", Space, Str "2" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "c", SoftBreak, Str "c", Space, Str "2" ] ]
        ]
      , Row
        ( "", [], [] )
        [ Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "r2", Space, Str "d" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "e" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "f" ] ]
        ]
      ]
    ]
    ( TableFoot ( "", [], [] ) [] )
  , Para
    [ Str "Spaces"
    , Space
    , Str "at"
    , Space
    , Str "ends"
    , Space
    , Str "of"
    , Space
    , Str "lines"
    ]
  , Table
    ( "", [], [] )
    ( Caption Nothing [] )
    [
      ( AlignDefault, ColWidth 0.2375 )
    ,
      ( AlignDefault, ColWidth 0.15 )
    ,
      ( AlignDefault, ColWidth 0.1625 )
    ]
    ( TableHead ( "", [], [] ) [] )
    [ TableBody
      ( "", [], [] )
      ( RowHeadColumns 0 ) []
      [ Row
        ( "", [], [] )
        [ Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain
            [ Str "r1", Space, Str "a", SoftBreak, Str "r1", Space, Str "bis" ]
          ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "b", SoftBreak, Str "b", Space, Str "2" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "c", SoftBreak, Str "c", Space, Str "2" ] ]
        ]
      , Row
        ( "", [], [] )
        [ Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "r2", Space, Str "d" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "e" ] ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain [ Str "f" ] ]
        ]
      ]
    ]
    ( TableFoot ( "", [], [] ) [] )
  , Para
    [ Str "Multiple"
    , Space
    , Str "blocks"
    , Space
    , Str "in"
    , Space
    , Str "a"
    , Space
    , Str "cell"
    ]
  , Table
    ( "", [], [] )
    ( Caption Nothing [] )
    [
      ( AlignDefault, ColWidth 0.2375 )
    ,
      ( AlignDefault, ColWidth 0.15 )
    ,
      ( AlignDefault, ColWidth 0.1625 )
    ]
    ( TableHead ( "", [], [] ) [] )
    [ TableBody
      ( "", [], [] )
      ( RowHeadColumns 0 ) []
      [ Row
        ( "", [], [] )
        [ Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Para
            [ Str "r1", Space, Str "a" ]
          , Para
            [ Str "r1", Space, Str "bis" ]
          ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ BulletList
            [
              [ Plain [ Str "b" ] ]
            ,
              [ Plain [ Str "b", Space, Str "2" ] ]
            ,
              [ Plain [ Str "b", Space, Str "2" ] ]
            ]
          ]
        , Cell
          ( "", [], [] ) AlignDefault
          ( RowSpan 1 )
          ( ColSpan 1 )
          [ Plain
            [ Str "c"
            , SoftBreak
            , Str "c"
            , Space
            , Str "2"
            , SoftBreak
            , Str "c"
            , Space
            , Str "2"
            ]
          ]
        ]
      ]
    ]
    ( TableFoot ( "", [], [] ) [] )
  , Header 1
    ( "footnotes", [], [] )
    [ Str "Footnotes" ]
  , Para
    [ Note
      [ Para
        [ Str "Note", Space, Str "with", Space, Str "one", Space, Str "line." ]
      ]
    ]
  , Para
    [ Note
      [ Para
        [ Str "Note"
        , Space
        , Str "with"
        , SoftBreak
        , Str "continuation"
        , Space
        , Str "line."
        ]
      ]
    ]
  , Para
    [ Note
      [ Para
        [ Str "Note", Space, Str "with" ]
      , Para
        [ Str "continuation", Space, Str "block." ]
      ]
    ]
  , Para
    [ Note
      [ Para
        [ Str "Note"
        , Space
        , Str "with"
        , SoftBreak
        , Str "continuation"
        , Space
        , Str "line"
        ]
      , Para
        [ Str "and", Space, Str "a", Space, Str "second", Space, Str "para." ]
      ]
    ]
  , Para
    [ Str "Not", Space, Str "in", Space, Str "note." ]
  , Header 1
    ( "math", [], [] )
    [ Str "Math" ]
  , Para
    [ Str "Some"
    , Space
    , Str "inline"
    , Space
    , Str "math"
    , Space
    , Math InlineMath "E=mc^2"
    , Str "."
    , Space
    , Str "Now"
    , Space
    , Str "some"
    , SoftBreak
    , Str "display"
    , Space
    , Str "math:"
    ]
  , Para
    [ Math DisplayMath "E=mc^2" ]
  , Para
    [ Math DisplayMath "E = mc^2" ]
  , Para
    [ Math DisplayMath "E = mc^2", Math DisplayMath "\\alpha = \\beta" ]
  , Para
    [ Math DisplayMath "\\begin{aligned}\nE &= mc^2\\\\\nF &= \\pi E\n\\end{aligned}"
    , Math DisplayMath "F &= \\gamma \\alpha^2"
    ]
  , Para
    [ Str "All", Space, Str "done." ]
  , Header 1
    ( "default-role", [], [] )
    [ Str "Default-Role" ]
  , Para
    [ Str "Try"
    , Space
    , Str "changing"
    , Space
    , Str "the"
    , Space
    , Str "default"
    , Space
    , Str "role"
    , Space
    , Str "to"
    , Space
    , Str "a"
    , Space
    , Str "few"
    , Space
    , Str "different"
    , Space
    , Str "things."
    ]
  , Header 2
    ( "doesnt-break-title-parsing", [], [] )
    [ Str "Doesn\8217t"
    , Space
    , Str "Break"
    , Space
    , Str "Title"
    , Space
    , Str "Parsing"
    ]
  , Para
    [ Str "Inline"
    , Space
    , Str "math:"
    , Space
    , Math InlineMath "E=mc^2"
    , Space
    , Str "or"
    , Space
    , Math InlineMath "E=mc^2"
    , Space
    , Str "or"
    , Space
    , Math InlineMath "E=mc^2"
    , Str "."
    , SoftBreak
    , Str "Other"
    , Space
    , Str "roles:"
    , Space
    , Superscript
      [ Str "super" ]
    , Str ","
    , Space
    , Subscript
      [ Str "sub" ]
    , Str "."
    ]
  , Para
    [ Math DisplayMath "\\alpha = beta", Math DisplayMath "E = mc^2" ]
  , Para
    [ Str "Some"
    , Space
    , Superscript
      [ Str "of" ]
    , Space
    , Str "these"
    , Space
    , Superscript
      [ Str "words" ]
    , Space
    , Str "are"
    , Space
    , Str "in"
    , Space
    , Superscript
      [ Str "superscript" ]
    , Str "."
    ]
  , Para
    [ Str "Reset"
    , Space
    , Str "default-role"
    , Space
    , Str "to"
    , Space
    , Str "the"
    , Space
    , Str "default"
    , Space
    , Str "default."
    ]
  , Para
    [ Str "And"
    , Space
    , Str "now"
    , Space
    , Span
      ( "", [ "title-ref" ], [] )
      [ Str "some-invalid-string-3231231" ]
    , Space
    , Str "is"
    , Space
    , Str "nonsense."
    ]
  , Para
    [ Str "And"
    , Space
    , Str "now"
    , Space
    , Str "with"
    , Space
    , RawInline
      ( Format "html" ) "<b>inline</b> <span id=\"test\">HTML</span>"
    , Str "."
    ]
  , Para
    [ Str "And"
    , Space
    , Str "some"
    , Space
    , Str "inline"
    , Space
    , Str "haskell"
    , Space
    , Code
      ( "", [ "haskell" ], [] ) "fmap id [1,2..10]"
    , Str "."
    ]
  , Para
    [ Str "Indirect"
    , Space
    , Str "python"
    , Space
    , Str "role"
    , Space
    , Code
      ( "", [ "py", "python", "indirect" ], [] ) "[x*x for x in [1,2,3,4,5]]"
    , Str "."
    ]
  , Para
    [ Str "Different"
    , Space
    , Str "indirect"
    , Space
    , Str "C"
    , Space
    , Code
      ( "", [ "c", "different-indirect" ], [] ) "int x = 15;"
    , Str "."
    ]
  , Header 2
    ( "literal-symbols", [], [] )
    [ Str "Literal", Space, Str "symbols" ]
  , Para
    [ Str "2*2", Space, Str "=", Space, Str "4*1" ]
  ]