@@ -180,7 +180,9 @@ doOpt (k',v) = do
180 parseYAML v >>= \x -> return (\o -> o{ optTemplate = unpack <$> x })
180 parseYAML v >>= \x -> return (\o -> o{ optTemplate = unpack <$> x })
181 "variables" ->
181 "variables" ->
182 parseYAML v >>= \x -> return (\o -> o{ optVariables =
182 parseYAML v >>= \x -> return (\o -> o{ optVariables =
183− optVariables o <> x })
183+ x <> optVariables o })
184+ -- Note: x comes first because <> for Context is left-biased union
185+ -- and we want to favor later default files. See #5988.
184 "metadata" ->
186 "metadata" ->
185 parseYAML v >>= \x -> return (\o -> o{ optMetadata = optMetadata o <>
187 parseYAML v >>= \x -> return (\o -> o{ optMetadata = optMetadata o <>
186 contextToMeta x })
188 contextToMeta x })