diff --git a/Text/Yaml/Reference.bnf b/Text/Yaml/Reference.bnf
--- a/Text/Yaml/Reference.bnf
+++ b/Text/Yaml/Reference.bnf
@@ -652,13 +652,13 @@
                         / s_l__flow_in_block n
 s_l__flow_in_block  n   = s_separate n FlowOut & ns_flow_node (n .+ 1) FlowOut & s_l_comments
 s_l__block_in_block n c = nest BeginNode
-                        & ( s_separate n c & c_ns_properties n c ?)
-                        & s_l__block_content n c
+                        & ( s_l__block_scalar n c / s_l__block_collection n c )
                         & nest EndNode
-s_l__block_content  n c = s_separate n c & c_l__literal n
-                        / s_separate n c & c_l__folded n
-                        / s_l_comments & l__block_sequence (seq_spaces n c)
-                        / s_l_comments & l__block_mapping n
+
+s_l__block_scalar     n c = s_separate n c & ( c_ns_properties n c & s_separate n c ?)
+                          & ( c_l__literal n / c_l__folded n )
+s_l__block_collection n c = ( s_l_comments / ( s_separate n c & c_ns_properties n c & s_l_comments ) )
+                          & ( l__block_sequence (seq_spaces n c)  / l__block_mapping n )
 
 -- Document:
 
diff --git a/Text/Yaml/Reference.hs b/Text/Yaml/Reference.hs
--- a/Text/Yaml/Reference.hs
+++ b/Text/Yaml/Reference.hs
@@ -469,19 +469,19 @@
 -- \"UserState\", we just bundle the generic and specific fields together (not
 -- that it is that easy to draw the line - is @sLine@ generic or specific?).
 data State = State {
-    sName         :: !String,          -- ^ The input name for error messages.
-    sEncoding     :: !Encoding,        -- ^ The input UTF encoding.
-    sDecision     :: !String,          -- ^ Current decision name.
-    sLimit        :: !Int,             -- ^ Lookahead characters limit.
-    sForbidden    :: !(Maybe Pattern), -- ^ Pattern we must not enter into.
-    sIsPeek       :: !Bool,            -- ^ Disables token generation.
-    sChars        :: ![Char],          -- ^ (Reversed) characters collected for a token.
-    sOffset       :: !Int,             -- ^ Offset in characters in the input.
-    sLine         :: !Int,             -- ^ Builds on YAML's line break definition.
-    sColumn       :: !Int,             -- ^ Actually character number - we hate tabs.
-    sCode         :: !Code,            -- ^ Of token we are collecting chars for.
-    sLast         :: !Char,            -- ^ Last matched character.
-    sInput        :: ![Char]           -- ^ The decoded input characters.
+    sName      :: !String,          -- ^ The input name for error messages.
+    sEncoding  :: !Encoding,        -- ^ The input UTF encoding.
+    sDecision  :: !String,          -- ^ Current decision name.
+    sLimit     :: !Int,             -- ^ Lookahead characters limit.
+    sForbidden :: !(Maybe Pattern), -- ^ Pattern we must not enter into.
+    sIsPeek    :: !Bool,            -- ^ Disables token generation.
+    sChars     :: ![Char],          -- ^ (Reversed) characters collected for a token.
+    sOffset    :: !Int,             -- ^ Offset in characters in the input.
+    sLine      :: !Int,             -- ^ Builds on YAML's line break definition.
+    sColumn    :: !Int,             -- ^ Actually character number - we hate tabs.
+    sCode      :: !Code,            -- ^ Of token we are collecting chars for.
+    sLast      :: !Char,            -- ^ Last matched character.
+    sInput     :: ![Char]           -- ^ The decoded input characters.
   }
 
 -- Showing a 'State' is only used in debugging. Note that forcing dump of
@@ -1413,10 +1413,11 @@
                  $ PAT(ns_plain_multi)
                  $ PAT(ns_s_flow_map_entries)
                  $ PAT(ns_s_flow_seq_entries)
-                 $ PAT(s_l__block_content)
+                 $ PAT(s_l__block_collection)
                  $ PAT(s_l__block_in_block)
                  $ PAT(s_l__block_indented)
                  $ PAT(s_l__block_node)
+                 $ PAT(s_l__block_scalar)
                  $ PAT(s_ns_flow_map_explicit_empty)
                  $ PAT(s_ns_flow_map_explicit_entry)
                  $ PAT(s_ns_flow_map_explicit_json)
diff --git a/YamlReference.cabal b/YamlReference.cabal
--- a/YamlReference.cabal
+++ b/YamlReference.cabal
@@ -1,5 +1,5 @@
 Name:            YamlReference
-Version:         0.4
+Version:         0.5
 License:         LGPL
 License-File:    lgpl.txt
 Copyright:       Oren Ben-Kiki 2007
@@ -7,7 +7,7 @@
 Maintainer:      yaml-oren@ben-kiki.org
 Stability:       alpha
 Homepage:        www.ben-kiki.org/oren/YamlReference
-Package-Url:     www.ben-kiki.org/oren/YamlReference/YamlReference-0.4.tar.gz
+Package-Url:     www.ben-kiki.org/oren/YamlReference/YamlReference-0.5.tar.gz
 Category:        Text
 Synopsis:        YAML reference implementation
 Description:     This package contains \"the\" reference YAML syntax parser
@@ -21,7 +21,8 @@
                  syntax visualizer (contained in this package), pretty
                  printers, etc. This is a streaming parser that will
                  \"immediately\" begin to generate output. The memory leak that
-                 existed in previous version has been plugged.
+                 existed in previous version has been plugged. Problems with greedy
+                 productions have been fixed.
 Build-Depends:   base >= 2.0, HUnit >= 1.1, regex-compat >= 0.71, dlist >= 0.2
 Exposed-Modules: Text.Yaml.Reference
 Extensions:      CPP, MultiParamTypeClasses
@@ -42,8 +43,8 @@
                  tests/b-chomped-last.t=keep.output
                  tests/b-chomped-last.t=strip.input
                  tests/b-chomped-last.t=strip.output tests/b-generic.cr.input
-                 tests/b-generic.crlf.input tests/b-generic.crlf.output
-                 tests/b-generic.cr.output tests/b-generic.invalid.input
+                 tests/b-generic.cr.output tests/b-generic.crlf.input
+                 tests/b-generic.crlf.output tests/b-generic.invalid.input
                  tests/b-generic.invalid.output tests/b-generic.lf.input
                  tests/b-generic.lf.output tests/b-generic.nl.input
                  tests/b-generic.nl.output tests/b-ignored-any.invalid.input
@@ -65,23 +66,23 @@
                  tests/b-l-folded-as-space.output
                  tests/b-l-folded-specific.n=4.s=plain.invalid.input
                  tests/b-l-folded-specific.n=4.s=plain.invalid.output
-                 tests/b-l-folded-specific.n=4.s=plain.ls.input
                  tests/b-l-folded-specific.n=4.s=plain.ls-lf-ls.input
                  tests/b-l-folded-specific.n=4.s=plain.ls-lf-ls.output
+                 tests/b-l-folded-specific.n=4.s=plain.ls.input
                  tests/b-l-folded-specific.n=4.s=plain.ls.output
                  tests/b-l-folded-trimmed.n=4.s=plain.invalid.input
                  tests/b-l-folded-trimmed.n=4.s=plain.invalid.output
                  tests/b-l-folded-trimmed.n=4.s=plain.lf-ls-lf.input
                  tests/b-l-folded-trimmed.n=4.s=plain.lf-ls-lf.output
-                 tests/b-line-feed.input tests/b-line-feed.output
-                 tests/b-line-separator.input tests/b-line-separator.output
                  tests/b-l-literal-next.n=4.input
                  tests/b-l-literal-next.n=4.invalid.input
                  tests/b-l-literal-next.n=4.invalid.output
                  tests/b-l-literal-next.n=4.output tests/b-l-spaced.n=4.input
                  tests/b-l-spaced.n=4.invalid.input
                  tests/b-l-spaced.n=4.invalid.output
-                 tests/b-l-spaced.n=4.output tests/b-next-line.input
+                 tests/b-l-spaced.n=4.output tests/b-line-feed.input
+                 tests/b-line-feed.output tests/b-line-separator.input
+                 tests/b-line-separator.output tests/b-next-line.input
                  tests/b-next-line.output tests/b-normalized.invalid.input
                  tests/b-normalized.invalid.output tests/b-normalized.lf.input
                  tests/b-normalized.lf.output tests/b-normalized.ls.input
@@ -93,17 +94,17 @@
                  tests/c-alias.input tests/c-alias.output tests/c-anchor.input
                  tests/c-anchor.output
                  tests/c-b+block-header.n=2.s=folded.i.input
+                 tests/c-b+block-header.n=2.s=folded.i.output
                  tests/c-b+block-header.n=2.s=folded.im.input
                  tests/c-b+block-header.n=2.s=folded.im.output
                  tests/c-b+block-header.n=2.s=folded.imt.input
                  tests/c-b+block-header.n=2.s=folded.imt.output
                  tests/c-b+block-header.n=2.s=folded.invalid.input
                  tests/c-b+block-header.n=2.s=folded.invalid.output
-                 tests/c-b+block-header.n=2.s=folded.i.output
                  tests/c-b+block-header.n=2.s=folded.it.input
+                 tests/c-b+block-header.n=2.s=folded.it.output
                  tests/c-b+block-header.n=2.s=folded.itm.input
                  tests/c-b+block-header.n=2.s=folded.itm.output
-                 tests/c-b+block-header.n=2.s=folded.it.output
                  tests/c-byte-order-mark.invalid.input
                  tests/c-byte-order-mark.invalid.output
                  tests/c-byte-order-mark.utf16be.input
@@ -128,12 +129,12 @@
                  tests/c-document-end.output tests/c-document-start.input
                  tests/c-document-start.invalid.input
                  tests/c-document-start.invalid.output
-                 tests/c-document-start.output
+                 tests/c-document-start.output tests/c-double-quote.input
+                 tests/c-double-quote.output
                  tests/c-double-quoted.n=4.c=flow-out.input
                  tests/c-double-quoted.n=4.c=flow-out.invalid.input
                  tests/c-double-quoted.n=4.c=flow-out.invalid.output
                  tests/c-double-quoted.n=4.c=flow-out.output
-                 tests/c-double-quote.input tests/c-double-quote.output
                  tests/c-escape.input tests/c-escape.invalid.input
                  tests/c-escape.invalid.output tests/c-escape.output
                  tests/c-flow-indicator.collect-entry.input
@@ -215,6 +216,20 @@
                  tests/c-indicator.single-quote.input
                  tests/c-indicator.single-quote.output
                  tests/c-indicator.tag.input tests/c-indicator.tag.output
+                 tests/c-l+folded.n=2.indent.input
+                 tests/c-l+folded.n=2.indent.output
+                 tests/c-l+folded.n=2.invalid.input
+                 tests/c-l+folded.n=2.invalid.output
+                 tests/c-l+folded.n=2.simple.input
+                 tests/c-l+folded.n=2.simple.output
+                 tests/c-l+literal.n=2.invalid.input
+                 tests/c-l+literal.n=2.invalid.output
+                 tests/c-l+literal.n=2.simple.input
+                 tests/c-l+literal.n=2.simple.output
+                 tests/c-l+literal.n=2.strip-indent.input
+                 tests/c-l+literal.n=2.strip-indent.output
+                 tests/c-l+literal.n=2.strip.input
+                 tests/c-l+literal.n=2.strip.output
                  tests/c-l-block-map-explicit-entry.n=2.input
                  tests/c-l-block-map-explicit-entry.n=2.invalid.input
                  tests/c-l-block-map-explicit-entry.n=2.invalid.output
@@ -232,21 +247,8 @@
                  tests/c-l-block-seq-entry.n=2.input
                  tests/c-l-block-seq-entry.n=2.invalid.input
                  tests/c-l-block-seq-entry.n=2.invalid.output
-                 tests/c-l-block-seq-entry.n=2.output
-                 tests/c-l+folded.n=2.indent.input
-                 tests/c-l+folded.n=2.indent.output
-                 tests/c-l+folded.n=2.invalid.input
-                 tests/c-l+folded.n=2.invalid.output
-                 tests/c-l+folded.n=2.simple.input
-                 tests/c-l+folded.n=2.simple.output tests/c-literal.input
-                 tests/c-literal.output tests/c-l+literal.n=2.invalid.input
-                 tests/c-l+literal.n=2.invalid.output
-                 tests/c-l+literal.n=2.simple.input
-                 tests/c-l+literal.n=2.simple.output
-                 tests/c-l+literal.n=2.strip-indent.input
-                 tests/c-l+literal.n=2.strip-indent.output
-                 tests/c-l+literal.n=2.strip.input
-                 tests/c-l+literal.n=2.strip.output tests/c-mapping-end.input
+                 tests/c-l-block-seq-entry.n=2.output tests/c-literal.input
+                 tests/c-literal.output tests/c-mapping-end.input
                  tests/c-mapping-end.output tests/c-mapping-key.input
                  tests/c-mapping-key.output tests/c-mapping-start.input
                  tests/c-mapping-start.output tests/c-mapping-value.input
@@ -254,10 +256,10 @@
                  tests/c-named-tag-handle.invalid.input
                  tests/c-named-tag-handle.invalid.output
                  tests/c-named-tag-handle.output
-                 tests/c-nb-comment-text.comment.input
-                 tests/c-nb-comment-text.comment.output
                  tests/c-nb-comment-text.comment-text.input
                  tests/c-nb-comment-text.comment-text.output
+                 tests/c-nb-comment-text.comment.input
+                 tests/c-nb-comment-text.comment.output
                  tests/c-nb-comment-text.invalid.input
                  tests/c-nb-comment-text.invalid.output
                  tests/c-non-specific-tag.input
@@ -328,18 +330,6 @@
                  tests/c-ns-tag-property.shorthand.output
                  tests/c-ns-tag-property.verbatim.input
                  tests/c-ns-tag-property.verbatim.output
-                 tests/count-spaces.n=0.0.input tests/count-spaces.n=0.0.output
-                 tests/count-spaces.n=0.1.input tests/count-spaces.n=0.1.output
-                 tests/count-spaces.n=0.2.input tests/count-spaces.n=0.2.output
-                 tests/count-spaces.n=-1.0.input tests/count-spaces.n=1.0.input
-                 tests/count-spaces.n=-1.0.output
-                 tests/count-spaces.n=1.0.output
-                 tests/count-spaces.n=-1.1.input tests/count-spaces.n=1.1.input
-                 tests/count-spaces.n=-1.1.output
-                 tests/count-spaces.n=1.1.output
-                 tests/count-spaces.n=-1.2.input tests/count-spaces.n=1.2.input
-                 tests/count-spaces.n=-1.2.output
-                 tests/count-spaces.n=1.2.output
                  tests/c-primary-tag-handle.input
                  tests/c-primary-tag-handle.invalid.input
                  tests/c-primary-tag-handle.invalid.output
@@ -363,24 +353,24 @@
                  tests/c-quoted-quote.output tests/c-reserved.at.input
                  tests/c-reserved.at.output tests/c-reserved.backtick.input
                  tests/c-reserved.backtick.output
+                 tests/c-s-simple-json-key.just.input
+                 tests/c-s-simple-json-key.just.output
+                 tests/c-s-simple-json-key.long.input
+                 tests/c-s-simple-json-key.long.output
+                 tests/c-s-simple-json-key.short.input
+                 tests/c-s-simple-json-key.short.output
                  tests/c-secondary-tag-handle.input
                  tests/c-secondary-tag-handle.invalid.input
                  tests/c-secondary-tag-handle.invalid.output
                  tests/c-secondary-tag-handle.output tests/c-sequence-end.input
                  tests/c-sequence-end.output tests/c-sequence-entry.input
                  tests/c-sequence-entry.output tests/c-sequence-start.input
-                 tests/c-sequence-start.output
+                 tests/c-sequence-start.output tests/c-single-quote.input
+                 tests/c-single-quote.output
                  tests/c-single-quoted.n=4.c=flow-out.input
                  tests/c-single-quoted.n=4.c=flow-out.invalid.input
                  tests/c-single-quoted.n=4.c=flow-out.invalid.output
                  tests/c-single-quoted.n=4.c=flow-out.output
-                 tests/c-single-quote.input tests/c-single-quote.output
-                 tests/c-s-simple-json-key.just.input
-                 tests/c-s-simple-json-key.just.output
-                 tests/c-s-simple-json-key.long.input
-                 tests/c-s-simple-json-key.long.output
-                 tests/c-s-simple-json-key.short.input
-                 tests/c-s-simple-json-key.short.output
                  tests/c-style-indicator.s=folded.input
                  tests/c-style-indicator.s=folded.output
                  tests/c-style-indicator.s=literal.input
@@ -397,21 +387,27 @@
                  tests/c-tag.output tests/c-verbatim-tag.input
                  tests/c-verbatim-tag.invalid.input
                  tests/c-verbatim-tag.invalid.output
-                 tests/c-verbatim-tag.output
+                 tests/c-verbatim-tag.output tests/count-spaces.n=-1.0.input
+                 tests/count-spaces.n=-1.0.output
+                 tests/count-spaces.n=-1.1.input
+                 tests/count-spaces.n=-1.1.output
+                 tests/count-spaces.n=-1.2.input
+                 tests/count-spaces.n=-1.2.output
+                 tests/count-spaces.n=0.0.input tests/count-spaces.n=0.0.output
+                 tests/count-spaces.n=0.1.input tests/count-spaces.n=0.1.output
+                 tests/count-spaces.n=0.2.input tests/count-spaces.n=0.2.output
+                 tests/count-spaces.n=1.0.input tests/count-spaces.n=1.0.output
+                 tests/count-spaces.n=1.1.input tests/count-spaces.n=1.1.output
+                 tests/count-spaces.n=1.2.input tests/count-spaces.n=1.2.output
                  tests/detect-collection-indentation.n=1.input
                  tests/detect-collection-indentation.n=1.output
                  tests/detect-inline-indentation.input
                  tests/detect-inline-indentation.output
                  tests/detect-scalar-indentation.n=2.input
-                 tests/detect-scalar-indentation.n=2.output tests/e-node.input
-                 tests/e-node.output tests/e-no-document.input
-                 tests/e-no-document.output tests/e-scalar.input
-                 tests/e-scalar.output
-                 tests/l-block-map-explicit-value.n=2.input
-                 tests/l-block-map-explicit-value.n=2.invalid.input
-                 tests/l-block-map-explicit-value.n=2.invalid.output
-                 tests/l-block-map-explicit-value.n=2.output
-                 tests/l+block-mapping.n=1.input
+                 tests/detect-scalar-indentation.n=2.output
+                 tests/e-no-document.input tests/e-no-document.output
+                 tests/e-node.input tests/e-node.output tests/e-scalar.input
+                 tests/e-scalar.output tests/l+block-mapping.n=1.input
                  tests/l+block-mapping.n=1.output
                  tests/l+block-mapping.n=2.invalid.input
                  tests/l+block-mapping.n=2.invalid.output
@@ -419,6 +415,10 @@
                  tests/l+block-sequence.n=1.output
                  tests/l+block-sequence.n=2.invalid.input
                  tests/l+block-sequence.n=2.invalid.output
+                 tests/l-block-map-explicit-value.n=2.input
+                 tests/l-block-map-explicit-value.n=2.invalid.input
+                 tests/l-block-map-explicit-value.n=2.invalid.output
+                 tests/l-block-map-explicit-value.n=2.output
                  tests/l-chomped-empty.n=4.t=clip.input
                  tests/l-chomped-empty.n=4.t=clip.output
                  tests/l-chomped-empty.n=4.t=keep.input
@@ -449,26 +449,26 @@
                  tests/l-document-prefix.empty.output
                  tests/l-document-prefix.invalid.input
                  tests/l-document-prefix.invalid.output
-                 tests/l-documents.explicit.input
-                 tests/l-documents.explicit.output
-                 tests/l-documents.implicit.input
-                 tests/l-documents.implicit.output
                  tests/l-document-suffix.input
                  tests/l-document-suffix.invalid.input
                  tests/l-document-suffix.invalid.output
                  tests/l-document-suffix.output
-                 tests/l-empty.n=4.s=literal.indent.input
+                 tests/l-documents.explicit.input
+                 tests/l-documents.explicit.output
+                 tests/l-documents.implicit.input
+                 tests/l-documents.implicit.output
                  tests/l-empty.n=4.s=literal.indent-lt.input
                  tests/l-empty.n=4.s=literal.indent-lt.output
-                 tests/l-empty.n=4.s=literal.indent.output
                  tests/l-empty.n=4.s=literal.indent-sp.invalid.input
                  tests/l-empty.n=4.s=literal.indent-sp.invalid.output
-                 tests/l-empty.n=4.s=plain.indent.input
+                 tests/l-empty.n=4.s=literal.indent.input
+                 tests/l-empty.n=4.s=literal.indent.output
                  tests/l-empty.n=4.s=plain.indent-lt.input
                  tests/l-empty.n=4.s=plain.indent-lt.output
-                 tests/l-empty.n=4.s=plain.indent.output
                  tests/l-empty.n=4.s=plain.indent-sp.input
                  tests/l-empty.n=4.s=plain.indent-sp.output
+                 tests/l-empty.n=4.s=plain.indent.input
+                 tests/l-empty.n=4.s=plain.indent.output
                  tests/l-explicit-document.invalid.input
                  tests/l-explicit-document.invalid.output
                  tests/l-explicit-document.literal.input
@@ -488,10 +488,10 @@
                  tests/l-forbidden.end-space.input
                  tests/l-forbidden.end-space.output
                  tests/l-forbidden.invalid.input
-                 tests/l-forbidden.invalid.output tests/l-forbidden.start.input
+                 tests/l-forbidden.invalid.output
                  tests/l-forbidden.start-lf.input
                  tests/l-forbidden.start-lf.output
-                 tests/l-forbidden.start.output
+                 tests/l-forbidden.start.input tests/l-forbidden.start.output
                  tests/l-implicit-document.invalid.input
                  tests/l-implicit-document.invalid.output
                  tests/l-implicit-document.literal.input
@@ -592,24 +592,23 @@
                  tests/ns-anchor-char.output tests/ns-anchor-name.input
                  tests/ns-anchor-name.invalid.input
                  tests/ns-anchor-name.invalid.output
-                 tests/ns-anchor-name.output tests/ns-ascii-letter.a.input
+                 tests/ns-anchor-name.output tests/ns-ascii-letter.Z.input
+                 tests/ns-ascii-letter.Z.output tests/ns-ascii-letter.a.input
                  tests/ns-ascii-letter.a.output
                  tests/ns-ascii-letter.invalid.input
-                 tests/ns-ascii-letter.invalid.output
-                 tests/ns-ascii-letter.Z.input tests/ns-ascii-letter.Z.output
-                 tests/ns-char.input tests/ns-char.invalid.input
-                 tests/ns-char.invalid.output tests/ns-char.output
-                 tests/ns-dec-digit.0.input tests/ns-dec-digit.0.output
-                 tests/ns-dec-digit.1.input tests/ns-dec-digit.1.output
-                 tests/ns-dec-digit.2.input tests/ns-dec-digit.2.output
-                 tests/ns-dec-digit.3.input tests/ns-dec-digit.3.output
-                 tests/ns-dec-digit.4.input tests/ns-dec-digit.4.output
-                 tests/ns-dec-digit.5.input tests/ns-dec-digit.5.output
-                 tests/ns-dec-digit.6.input tests/ns-dec-digit.6.output
-                 tests/ns-dec-digit.7.input tests/ns-dec-digit.7.output
-                 tests/ns-dec-digit.8.input tests/ns-dec-digit.8.output
-                 tests/ns-dec-digit.9.input tests/ns-dec-digit.9.output
-                 tests/ns-dec-digit.invalid.input
+                 tests/ns-ascii-letter.invalid.output tests/ns-char.input
+                 tests/ns-char.invalid.input tests/ns-char.invalid.output
+                 tests/ns-char.output tests/ns-dec-digit.0.input
+                 tests/ns-dec-digit.0.output tests/ns-dec-digit.1.input
+                 tests/ns-dec-digit.1.output tests/ns-dec-digit.2.input
+                 tests/ns-dec-digit.2.output tests/ns-dec-digit.3.input
+                 tests/ns-dec-digit.3.output tests/ns-dec-digit.4.input
+                 tests/ns-dec-digit.4.output tests/ns-dec-digit.5.input
+                 tests/ns-dec-digit.5.output tests/ns-dec-digit.6.input
+                 tests/ns-dec-digit.6.output tests/ns-dec-digit.7.input
+                 tests/ns-dec-digit.7.output tests/ns-dec-digit.8.input
+                 tests/ns-dec-digit.8.output tests/ns-dec-digit.9.input
+                 tests/ns-dec-digit.9.output tests/ns-dec-digit.invalid.input
                  tests/ns-dec-digit.invalid.output
                  tests/ns-directive-name.input
                  tests/ns-directive-name.invalid.input
@@ -654,10 +653,10 @@
                  tests/ns-esc-double-quote.output tests/ns-esc-escape.input
                  tests/ns-esc-escape.output tests/ns-esc-form-feed.input
                  tests/ns-esc-form-feed.output
-                 tests/ns-esc-horizontal-tab.tab.input
-                 tests/ns-esc-horizontal-tab.tab.output
                  tests/ns-esc-horizontal-tab.t.input
                  tests/ns-esc-horizontal-tab.t.output
+                 tests/ns-esc-horizontal-tab.tab.input
+                 tests/ns-esc-horizontal-tab.tab.output
                  tests/ns-esc-line-feed.input tests/ns-esc-line-feed.output
                  tests/ns-esc-line-separator.input
                  tests/ns-esc-line-separator.output
@@ -724,10 +723,10 @@
                  tests/ns-flow-node.n=4.c=flow-in.alias.output
                  tests/ns-flow-node.n=4.c=flow-in.invalid.input
                  tests/ns-flow-node.n=4.c=flow-in.invalid.output
-                 tests/ns-flow-node.n=4.c=flow-in.tagged.input
-                 tests/ns-flow-node.n=4.c=flow-in.tagged.output
                  tests/ns-flow-node.n=4.c=flow-in.tag.input
                  tests/ns-flow-node.n=4.c=flow-in.tag.output
+                 tests/ns-flow-node.n=4.c=flow-in.tagged.input
+                 tests/ns-flow-node.n=4.c=flow-in.tagged.output
                  tests/ns-flow-node.n=4.c=flow-in.untagged.input
                  tests/ns-flow-node.n=4.c=flow-in.untagged.output
                  tests/ns-flow-seq-entry.n=4.c=flow-in.invalid.input
@@ -744,23 +743,23 @@
                  tests/ns-flow-yaml-node.n=4.c=flow-in.alias.output
                  tests/ns-flow-yaml-node.n=4.c=flow-in.invalid.input
                  tests/ns-flow-yaml-node.n=4.c=flow-in.invalid.output
-                 tests/ns-flow-yaml-node.n=4.c=flow-in.tagged.input
-                 tests/ns-flow-yaml-node.n=4.c=flow-in.tagged.output
                  tests/ns-flow-yaml-node.n=4.c=flow-in.tag.input
                  tests/ns-flow-yaml-node.n=4.c=flow-in.tag.output
+                 tests/ns-flow-yaml-node.n=4.c=flow-in.tagged.input
+                 tests/ns-flow-yaml-node.n=4.c=flow-in.tagged.output
                  tests/ns-flow-yaml-node.n=4.c=flow-in.untagged.input
                  tests/ns-flow-yaml-node.n=4.c=flow-in.untagged.output
                  tests/ns-global-tag-prefix.input
                  tests/ns-global-tag-prefix.invalid.input
                  tests/ns-global-tag-prefix.invalid.output
                  tests/ns-global-tag-prefix.output tests/ns-hex-digit.6.input
-                 tests/ns-hex-digit.6.output tests/ns-hex-digit.a.input
-                 tests/ns-hex-digit.a.output tests/ns-hex-digit.B.input
-                 tests/ns-hex-digit.B.output tests/ns-hex-digit.c.input
-                 tests/ns-hex-digit.c.output tests/ns-hex-digit.D.input
-                 tests/ns-hex-digit.D.output tests/ns-hex-digit.e.input
-                 tests/ns-hex-digit.e.output tests/ns-hex-digit.F.input
-                 tests/ns-hex-digit.F.output tests/ns-hex-digit.invalid.input
+                 tests/ns-hex-digit.6.output tests/ns-hex-digit.B.input
+                 tests/ns-hex-digit.B.output tests/ns-hex-digit.D.input
+                 tests/ns-hex-digit.D.output tests/ns-hex-digit.F.input
+                 tests/ns-hex-digit.F.output tests/ns-hex-digit.a.input
+                 tests/ns-hex-digit.a.output tests/ns-hex-digit.c.input
+                 tests/ns-hex-digit.c.output tests/ns-hex-digit.e.input
+                 tests/ns-hex-digit.e.output tests/ns-hex-digit.invalid.input
                  tests/ns-hex-digit.invalid.output
                  tests/ns-l-block-map-entry.n=2.explicit.input
                  tests/ns-l-block-map-entry.n=2.explicit.output
@@ -782,60 +781,60 @@
                  tests/ns-l-in-line-sequence.n=3.invalid.input
                  tests/ns-l-in-line-sequence.n=3.invalid.output
                  tests/ns-l-in-line-sequence.n=3.output
-                 tests/ns-plain-char.c=flow-in.acc.input
-                 tests/ns-plain-char.c=flow-in.acc.output
-                 tests/ns-plain-char.c=flow-in.ac.input
-                 tests/ns-plain-char.c=flow-in.ac.output
                  tests/ns-plain-char.c=flow-in.a.input
                  tests/ns-plain-char.c=flow-in.a.output
+                 tests/ns-plain-char.c=flow-in.ac.input
+                 tests/ns-plain-char.c=flow-in.ac.output
+                 tests/ns-plain-char.c=flow-in.acc.input
+                 tests/ns-plain-char.c=flow-in.acc.output
                  tests/ns-plain-char.c=flow-in.c.input
                  tests/ns-plain-char.c=flow-in.c.output
+                 tests/ns-plain-char.c=flow-in.m.input
+                 tests/ns-plain-char.c=flow-in.m.output
                  tests/ns-plain-char.c=flow-in.ma.input
                  tests/ns-plain-char.c=flow-in.ma.output
                  tests/ns-plain-char.c=flow-in.mc.input
                  tests/ns-plain-char.c=flow-in.mc.output
-                 tests/ns-plain-char.c=flow-in.m.input
                  tests/ns-plain-char.c=flow-in.mmcc.input
                  tests/ns-plain-char.c=flow-in.mmcc.output
                  tests/ns-plain-char.c=flow-in.mms.input
                  tests/ns-plain-char.c=flow-in.mms.output
-                 tests/ns-plain-char.c=flow-in.m.output
                  tests/ns-plain-char.c=flow-in.s.input
                  tests/ns-plain-char.c=flow-in.s.output
                  tests/ns-plain-first.c=flow-in.a.input
                  tests/ns-plain-first.c=flow-in.a.output
                  tests/ns-plain-first.c=flow-in.c.input
                  tests/ns-plain-first.c=flow-in.c.output
+                 tests/ns-plain-first.c=flow-in.d.input
+                 tests/ns-plain-first.c=flow-in.d.output
                  tests/ns-plain-first.c=flow-in.da.input
                  tests/ns-plain-first.c=flow-in.da.output
                  tests/ns-plain-first.c=flow-in.dc.input
                  tests/ns-plain-first.c=flow-in.dc.output
-                 tests/ns-plain-first.c=flow-in.d.input
-                 tests/ns-plain-first.c=flow-in.d.output
                  tests/ns-plain-first.c=flow-in.ds.input
                  tests/ns-plain-first.c=flow-in.ds.output
-                 tests/ns-plain-first.c=flow-in.ia.input
-                 tests/ns-plain-first.c=flow-in.ia.output
                  tests/ns-plain-first.c=flow-in.i.input
                  tests/ns-plain-first.c=flow-in.i.output
+                 tests/ns-plain-first.c=flow-in.ia.input
+                 tests/ns-plain-first.c=flow-in.ia.output
+                 tests/ns-plain-first.c=flow-in.k.input
+                 tests/ns-plain-first.c=flow-in.k.output
                  tests/ns-plain-first.c=flow-in.ka.input
                  tests/ns-plain-first.c=flow-in.ka.output
                  tests/ns-plain-first.c=flow-in.kc.input
                  tests/ns-plain-first.c=flow-in.kc.output
-                 tests/ns-plain-first.c=flow-in.k.input
-                 tests/ns-plain-first.c=flow-in.k.output
                  tests/ns-plain-first.c=flow-in.ks.input
                  tests/ns-plain-first.c=flow-in.ks.output
                  tests/ns-plain-first.c=flow-in.m.input
                  tests/ns-plain-first.c=flow-in.m.output
                  tests/ns-plain-first.c=flow-in.s.input
                  tests/ns-plain-first.c=flow-in.s.output
+                 tests/ns-plain-first.c=flow-in.v.input
+                 tests/ns-plain-first.c=flow-in.v.output
                  tests/ns-plain-first.c=flow-in.va.input
                  tests/ns-plain-first.c=flow-in.va.output
                  tests/ns-plain-first.c=flow-in.vc.input
                  tests/ns-plain-first.c=flow-in.vc.output
-                 tests/ns-plain-first.c=flow-in.v.input
-                 tests/ns-plain-first.c=flow-in.v.output
                  tests/ns-plain-first.c=flow-in.vs.input
                  tests/ns-plain-first.c=flow-in.vs.output
                  tests/ns-plain-first.c=flow-out.m.input
@@ -844,22 +843,6 @@
                  tests/ns-plain-multi.n=4.c=flow-in.invalid.input
                  tests/ns-plain-multi.n=4.c=flow-in.invalid.output
                  tests/ns-plain-multi.n=4.c=flow-in.output
-                 tests/ns-plain.n=4.c=flow-in.input
-                 tests/ns-plain.n=4.c=flow-in.output
-                 tests/ns-plain.n=4.c=flow-key.input
-                 tests/ns-plain.n=4.c=flow-key.invalid.input
-                 tests/ns-plain.n=4.c=flow-key.invalid.output
-                 tests/ns-plain.n=4.c=flow-key.output
-                 tests/ns-plain-safe.c=flow-in.mapping-start.input
-                 tests/ns-plain-safe.c=flow-in.mapping-start.output
-                 tests/ns-plain-safe.c=flow-in.v.input
-                 tests/ns-plain-safe.c=flow-in.v.output
-                 tests/ns-plain-safe.c=flow-out.a.input
-                 tests/ns-plain-safe.c=flow-out.a.output
-                 tests/ns-plain-safe.c=flow-out.c.input
-                 tests/ns-plain-safe.c=flow-out.c.output
-                 tests/ns-plain-safe.c=flow-out.mapping-start.input
-                 tests/ns-plain-safe.c=flow-out.mapping-start.output
                  tests/ns-plain-safe-in.a.input tests/ns-plain-safe-in.a.output
                  tests/ns-plain-safe-in.c.input tests/ns-plain-safe-in.c.output
                  tests/ns-plain-safe-in.mapping-start.input
@@ -873,10 +856,26 @@
                  tests/ns-plain-safe-out.mapping-start.output
                  tests/ns-plain-safe-out.v.input
                  tests/ns-plain-safe-out.v.output
+                 tests/ns-plain-safe.c=flow-in.mapping-start.input
+                 tests/ns-plain-safe.c=flow-in.mapping-start.output
+                 tests/ns-plain-safe.c=flow-in.v.input
+                 tests/ns-plain-safe.c=flow-in.v.output
+                 tests/ns-plain-safe.c=flow-out.a.input
+                 tests/ns-plain-safe.c=flow-out.a.output
+                 tests/ns-plain-safe.c=flow-out.c.input
+                 tests/ns-plain-safe.c=flow-out.c.output
+                 tests/ns-plain-safe.c=flow-out.mapping-start.input
+                 tests/ns-plain-safe.c=flow-out.mapping-start.output
                  tests/ns-plain-single.c=flow-key.invalid.input
                  tests/ns-plain-single.c=flow-key.invalid.output
                  tests/ns-plain-single.c=flow-out.input
                  tests/ns-plain-single.c=flow-out.output
+                 tests/ns-plain.n=4.c=flow-in.input
+                 tests/ns-plain.n=4.c=flow-in.output
+                 tests/ns-plain.n=4.c=flow-key.input
+                 tests/ns-plain.n=4.c=flow-key.invalid.input
+                 tests/ns-plain.n=4.c=flow-key.invalid.output
+                 tests/ns-plain.n=4.c=flow-key.output
                  tests/ns-reserved-directive.input
                  tests/ns-reserved-directive.invalid.input
                  tests/ns-reserved-directive.invalid.output
@@ -899,16 +898,16 @@
                  tests/ns-s-flow-seq-entries.n=4.c=flow-in.multi.output
                  tests/ns-s-flow-seq-entries.n=4.c=flow-in.single.input
                  tests/ns-s-flow-seq-entries.n=4.c=flow-in.single.output
-                 tests/ns-single-char.input tests/ns-single-char.invalid.input
-                 tests/ns-single-char.invalid.output
-                 tests/ns-single-char.output
                  tests/ns-s-simple-yaml-key.just.input
                  tests/ns-s-simple-yaml-key.just.output
                  tests/ns-s-simple-yaml-key.long.input
                  tests/ns-s-simple-yaml-key.long.output
                  tests/ns-s-simple-yaml-key.short.input
                  tests/ns-s-simple-yaml-key.short.output
-                 tests/ns-tag-char.input tests/ns-tag-char.invalid.input
+                 tests/ns-single-char.input tests/ns-single-char.invalid.input
+                 tests/ns-single-char.invalid.output
+                 tests/ns-single-char.output tests/ns-tag-char.input
+                 tests/ns-tag-char.invalid.input
                  tests/ns-tag-char.invalid.output tests/ns-tag-char.output
                  tests/ns-tag-directive.input
                  tests/ns-tag-directive.invalid.input
@@ -969,9 +968,9 @@
                  tests/s-b-comment.invalid.output
                  tests/s-b-comment.sol-text.input
                  tests/s-b-comment.sol-text.output
-                 tests/s-b-comment.spaces.input tests/s-b-comment.spaces.output
                  tests/s-b-comment.spaces-text.input
                  tests/s-b-comment.spaces-text.output
+                 tests/s-b-comment.spaces.input tests/s-b-comment.spaces.output
                  tests/s-b-double-escaped.input
                  tests/s-b-double-escaped.invalid.input
                  tests/s-b-double-escaped.invalid.output
@@ -999,35 +998,31 @@
                  tests/s-ignored-prefix.n=4.s=plain.output
                  tests/s-ignored-prefix.n=4.s=single.input
                  tests/s-ignored-prefix.n=4.s=single.output
-                 tests/s-indent-le.n=0.input tests/s-indent-le.n=0.output
                  tests/s-indent-le.n=-1.invalid.input
                  tests/s-indent-le.n=-1.invalid.output
+                 tests/s-indent-le.n=0.input tests/s-indent-le.n=0.output
                  tests/s-indent-le.n=4.input
                  tests/s-indent-le.n=4.invalid.input
                  tests/s-indent-le.n=4.invalid.output
                  tests/s-indent-le.n=4.output
-                 tests/s-indent-lt.n=0.invalid.input
-                 tests/s-indent-lt.n=0.invalid.output
                  tests/s-indent-lt.n=-1.invalid.input
                  tests/s-indent-lt.n=-1.invalid.output
+                 tests/s-indent-lt.n=0.invalid.input
+                 tests/s-indent-lt.n=0.invalid.output
                  tests/s-indent-lt.n=4.input
                  tests/s-indent-lt.n=4.invalid.input
                  tests/s-indent-lt.n=4.invalid.output
-                 tests/s-indent-lt.n=4.output tests/s-indent.n=0.input
-                 tests/s-indent.n=0.output tests/s-indent.n=-1.input
-                 tests/s-indent.n=-1.output tests/s-indent.n=4.input
+                 tests/s-indent-lt.n=4.output tests/s-indent.n=-1.input
+                 tests/s-indent.n=-1.output tests/s-indent.n=0.input
+                 tests/s-indent.n=0.output tests/s-indent.n=4.input
                  tests/s-indent.n=4.invalid.input
                  tests/s-indent.n=4.invalid.output tests/s-indent.n=4.output
-                 tests/s-l+block-content.n=2.c=block-in.sequence.input
-                 tests/s-l+block-content.n=2.c=block-in.sequence.output
-                 tests/s-l+block-content.n=2.c=block-out.folded.input
-                 tests/s-l+block-content.n=2.c=block-out.folded.output
-                 tests/s-l+block-content.n=2.c=block-out.invalid.input
-                 tests/s-l+block-content.n=2.c=block-out.invalid.output
-                 tests/s-l+block-content.n=2.c=block-out.literal.input
-                 tests/s-l+block-content.n=2.c=block-out.literal.output
-                 tests/s-l+block-content.n=2.c=block-out.mapping.input
-                 tests/s-l+block-content.n=2.c=block-out.mapping.output
+                 tests/s-l+block-collection.n=2.c=block-in.sequence.input
+                 tests/s-l+block-collection.n=2.c=block-in.sequence.output
+                 tests/s-l+block-collection.n=2.c=block-out.invalid.input
+                 tests/s-l+block-collection.n=2.c=block-out.invalid.output
+                 tests/s-l+block-collection.n=2.c=block-out.mapping.input
+                 tests/s-l+block-collection.n=2.c=block-out.mapping.output
                  tests/s-l+block-in-block.n=2.c=block-out.invalid.input
                  tests/s-l+block-in-block.n=2.c=block-out.invalid.output
                  tests/s-l+block-in-block.n=2.c=block-out.tagged.input
@@ -1046,12 +1041,22 @@
                  tests/s-l+block-indented.n=2.c=block-out.literal.output
                  tests/s-l+block-indented.n=2.c=block-out.sequence.input
                  tests/s-l+block-indented.n=2.c=block-out.sequence.output
+                 tests/s-l+block-node.n=-1.c=block-out.input
+                 tests/s-l+block-node.n=-1.c=block-out.output
                  tests/s-l+block-node.n=2.c=block-out.block.input
                  tests/s-l+block-node.n=2.c=block-out.block.output
                  tests/s-l+block-node.n=2.c=block-out.flow.input
                  tests/s-l+block-node.n=2.c=block-out.flow.output
                  tests/s-l+block-node.n=2.c=block-out.invalid.input
                  tests/s-l+block-node.n=2.c=block-out.invalid.output
+                 tests/s-l+block-scalar.n=2.c=block-out.folded.input
+                 tests/s-l+block-scalar.n=2.c=block-out.folded.output
+                 tests/s-l+block-scalar.n=2.c=block-out.literal.input
+                 tests/s-l+block-scalar.n=2.c=block-out.literal.output
+                 tests/s-l+flow-in-block.n=2.input
+                 tests/s-l+flow-in-block.n=2.invalid.input
+                 tests/s-l+flow-in-block.n=2.invalid.output
+                 tests/s-l+flow-in-block.n=2.output
                  tests/s-l-comments.invalid.input
                  tests/s-l-comments.invalid.output
                  tests/s-l-comments.multi.input tests/s-l-comments.multi.output
@@ -1068,10 +1073,6 @@
                  tests/s-l-flow-folded.n=4.lf.output
                  tests/s-l-flow-folded.n=4.sp-lf-lf.input
                  tests/s-l-flow-folded.n=4.sp-lf-lf.output
-                 tests/s-l+flow-in-block.n=2.input
-                 tests/s-l+flow-in-block.n=2.invalid.input
-                 tests/s-l+flow-in-block.n=2.invalid.output
-                 tests/s-l+flow-in-block.n=2.output
                  tests/s-nb-folded-text.n=4.input
                  tests/s-nb-folded-text.n=4.invalid.input
                  tests/s-nb-folded-text.n=4.invalid.output
diff --git a/tests/s-l+block-collection.n=2.c=block-in.sequence.input b/tests/s-l+block-collection.n=2.c=block-in.sequence.input
new file mode 100644
--- /dev/null
+++ b/tests/s-l+block-collection.n=2.c=block-in.sequence.input
@@ -0,0 +1,2 @@
+
+  - a
diff --git a/tests/s-l+block-collection.n=2.c=block-in.sequence.output b/tests/s-l+block-collection.n=2.c=block-in.sequence.output
new file mode 100644
--- /dev/null
+++ b/tests/s-l+block-collection.n=2.c=block-in.sequence.output
@@ -0,0 +1,14 @@
+b\x0a
+Q
+i  
+I-
+!Commit to 'node' was made outside it
+w 
+N
+S
+!Commit to 'node' was made outside it
+Ta
+s
+n
+b\x0a
+q
diff --git a/tests/s-l+block-collection.n=2.c=block-out.invalid.input b/tests/s-l+block-collection.n=2.c=block-out.invalid.input
new file mode 100644
--- /dev/null
+++ b/tests/s-l+block-collection.n=2.c=block-out.invalid.input
@@ -0,0 +1,2 @@
+
+  - a
diff --git a/tests/s-l+block-collection.n=2.c=block-out.invalid.output b/tests/s-l+block-collection.n=2.c=block-out.invalid.output
new file mode 100644
--- /dev/null
+++ b/tests/s-l+block-collection.n=2.c=block-out.invalid.output
@@ -0,0 +1,3 @@
+b\x0a
+M
+!$InputFile$: line 2: column 2: Unexpected '-'
diff --git a/tests/s-l+block-collection.n=2.c=block-out.mapping.input b/tests/s-l+block-collection.n=2.c=block-out.mapping.input
new file mode 100644
--- /dev/null
+++ b/tests/s-l+block-collection.n=2.c=block-out.mapping.input
@@ -0,0 +1,2 @@
+
+   a: b
diff --git a/tests/s-l+block-collection.n=2.c=block-out.mapping.output b/tests/s-l+block-collection.n=2.c=block-out.mapping.output
new file mode 100644
--- /dev/null
+++ b/tests/s-l+block-collection.n=2.c=block-out.mapping.output
@@ -0,0 +1,21 @@
+b\x0a
+M
+i   
+X
+N
+S
+Ta
+s
+n
+I:
+!Commit to 'node' was made outside it
+w 
+N
+S
+!Commit to 'node' was made outside it
+Tb
+s
+n
+b\x0a
+x
+m
diff --git a/tests/s-l+block-content.n=2.c=block-in.sequence.input b/tests/s-l+block-content.n=2.c=block-in.sequence.input
deleted file mode 100644
--- a/tests/s-l+block-content.n=2.c=block-in.sequence.input
+++ /dev/null
@@ -1,2 +0,0 @@
-
-  - a
diff --git a/tests/s-l+block-content.n=2.c=block-in.sequence.output b/tests/s-l+block-content.n=2.c=block-in.sequence.output
deleted file mode 100644
--- a/tests/s-l+block-content.n=2.c=block-in.sequence.output
+++ /dev/null
@@ -1,14 +0,0 @@
-b\x0a
-Q
-i  
-I-
-!Commit to 'node' was made outside it
-w 
-N
-S
-!Commit to 'node' was made outside it
-Ta
-s
-n
-b\x0a
-q
diff --git a/tests/s-l+block-content.n=2.c=block-out.folded.input b/tests/s-l+block-content.n=2.c=block-out.folded.input
deleted file mode 100644
--- a/tests/s-l+block-content.n=2.c=block-out.folded.input
+++ /dev/null
@@ -1,2 +0,0 @@
->
-   a
diff --git a/tests/s-l+block-content.n=2.c=block-out.folded.output b/tests/s-l+block-content.n=2.c=block-out.folded.output
deleted file mode 100644
--- a/tests/s-l+block-content.n=2.c=block-out.folded.output
+++ /dev/null
@@ -1,8 +0,0 @@
-S
-I>
-!Commit to 'node' was made outside it
-b\x0a
-i   
-Ta
-L\x0a
-s
diff --git a/tests/s-l+block-content.n=2.c=block-out.invalid.input b/tests/s-l+block-content.n=2.c=block-out.invalid.input
deleted file mode 100644
--- a/tests/s-l+block-content.n=2.c=block-out.invalid.input
+++ /dev/null
@@ -1,2 +0,0 @@
-
-  - a
diff --git a/tests/s-l+block-content.n=2.c=block-out.invalid.output b/tests/s-l+block-content.n=2.c=block-out.invalid.output
deleted file mode 100644
--- a/tests/s-l+block-content.n=2.c=block-out.invalid.output
+++ /dev/null
@@ -1,3 +0,0 @@
-b\x0a
-M
-!$InputFile$: line 2: column 2: Unexpected '-'
diff --git a/tests/s-l+block-content.n=2.c=block-out.literal.input b/tests/s-l+block-content.n=2.c=block-out.literal.input
deleted file mode 100644
--- a/tests/s-l+block-content.n=2.c=block-out.literal.input
+++ /dev/null
@@ -1,2 +0,0 @@
- |
-   a
diff --git a/tests/s-l+block-content.n=2.c=block-out.literal.output b/tests/s-l+block-content.n=2.c=block-out.literal.output
deleted file mode 100644
--- a/tests/s-l+block-content.n=2.c=block-out.literal.output
+++ /dev/null
@@ -1,9 +0,0 @@
-w 
-S
-I|
-!Commit to 'node' was made outside it
-b\x0a
-i   
-Ta
-L\x0a
-s
diff --git a/tests/s-l+block-content.n=2.c=block-out.mapping.input b/tests/s-l+block-content.n=2.c=block-out.mapping.input
deleted file mode 100644
--- a/tests/s-l+block-content.n=2.c=block-out.mapping.input
+++ /dev/null
@@ -1,2 +0,0 @@
-
-   a: b
diff --git a/tests/s-l+block-content.n=2.c=block-out.mapping.output b/tests/s-l+block-content.n=2.c=block-out.mapping.output
deleted file mode 100644
--- a/tests/s-l+block-content.n=2.c=block-out.mapping.output
+++ /dev/null
@@ -1,21 +0,0 @@
-b\x0a
-M
-i   
-X
-N
-S
-Ta
-s
-n
-I:
-!Commit to 'node' was made outside it
-w 
-N
-S
-!Commit to 'node' was made outside it
-Tb
-s
-n
-b\x0a
-x
-m
diff --git a/tests/s-l+block-node.n=-1.c=block-out.input b/tests/s-l+block-node.n=-1.c=block-out.input
new file mode 100644
--- /dev/null
+++ b/tests/s-l+block-node.n=-1.c=block-out.input
@@ -0,0 +1,1 @@
+!a b: c
diff --git a/tests/s-l+block-node.n=-1.c=block-out.output b/tests/s-l+block-node.n=-1.c=block-out.output
new file mode 100644
--- /dev/null
+++ b/tests/s-l+block-node.n=-1.c=block-out.output
@@ -0,0 +1,30 @@
+N
+M
+X
+N
+P
+G
+H
+I!
+h
+ta
+g
+p
+w 
+S
+Tb
+s
+n
+I:
+!Commit to 'node' was made outside it
+w 
+N
+S
+!Commit to 'node' was made outside it
+Tc
+s
+n
+b\x0a
+x
+m
+n
diff --git a/tests/s-l+block-scalar.n=2.c=block-out.folded.input b/tests/s-l+block-scalar.n=2.c=block-out.folded.input
new file mode 100644
--- /dev/null
+++ b/tests/s-l+block-scalar.n=2.c=block-out.folded.input
@@ -0,0 +1,2 @@
+>
+   a
diff --git a/tests/s-l+block-scalar.n=2.c=block-out.folded.output b/tests/s-l+block-scalar.n=2.c=block-out.folded.output
new file mode 100644
--- /dev/null
+++ b/tests/s-l+block-scalar.n=2.c=block-out.folded.output
@@ -0,0 +1,8 @@
+S
+I>
+!Commit to 'node' was made outside it
+b\x0a
+i   
+Ta
+L\x0a
+s
diff --git a/tests/s-l+block-scalar.n=2.c=block-out.literal.input b/tests/s-l+block-scalar.n=2.c=block-out.literal.input
new file mode 100644
--- /dev/null
+++ b/tests/s-l+block-scalar.n=2.c=block-out.literal.input
@@ -0,0 +1,2 @@
+ |
+   a
diff --git a/tests/s-l+block-scalar.n=2.c=block-out.literal.output b/tests/s-l+block-scalar.n=2.c=block-out.literal.output
new file mode 100644
--- /dev/null
+++ b/tests/s-l+block-scalar.n=2.c=block-out.literal.output
@@ -0,0 +1,9 @@
+w 
+S
+I|
+!Commit to 'node' was made outside it
+b\x0a
+i   
+Ta
+L\x0a
+s
diff --git a/yaml2yeast.css b/yaml2yeast.css
--- a/yaml2yeast.css
+++ b/yaml2yeast.css
@@ -30,6 +30,9 @@
 span.text {
     font-family: monospace;
 }
+span.error {
+    background-color: red;
+}
 span.tree_glyph {
     text-align: center;
     font-family: monospace;
