--- /dev/null
+#!/bin/sh
+
+for i in $(cd fragments; ls); do
+ perl -Ilib bin/dx fragments/$i >fragment.output/$i
+done
--- /dev/null
+$ ?
+? dict ?X
+SetValue 0.X {{ }}
+? eq ?Y X
+? qact
+SetValue 0.X {{ }}
+? eq Y {{ foo 1 }}
+BindValue 0.Y 0.X
+? qact
+SetValue 0.X {{ }}
+BindValue 0.Y 0.X
+? .
+{{ X {{ }} Y {{ }} }}
+$ ?
+? dict ?X {{ foo {{ bar 1 }} }}
+SetValue 0.X {{ foo {{ bar 1 }} }}
+? member_at X 'foo' ?Y
+? member_at Y 'bar' ?Z
+BindValue 0.Y 0.X.foo
+? eq Z 2
+BindValue 0.Z 0.Y.bar
+? member_at Y 'baz' 4
+SetBoundValue 0.Z 2
+SetBoundValue 0.Y.bar 2
+SetValue 0.X.foo.bar 2
+? qact
+SetValue 0.X {{ foo {{ bar 1 }} }}
+SetValue 0.X.foo.bar 2
+BindValue 0.Y 0.X.foo
+BindValue 0.Z 0.Y.bar
+? .
+{{ X {{ foo {{ bar 2 }} }} Y {{ bar 2 }} Z 2 }}
--- /dev/null
+$ #trace +step +search
+$ const systems {{ agaton 'debian' sherlock 'debian' hatebox 'rhel' }}
+$ ?
+? member_at systems ?Name ?OS
+SetValue 0.Name 'agaton'
+BindValue 0.OS systems.agaton
+? eq OS 'debian'
+? ...
+{{ Name 'agaton' OS 'debian' }}
+{{ Name 'hatebox' OS 'rhel' }}
+{{ Name 'sherlock' OS 'debian' }}
+No next solution
--- /dev/null
+$ ?
+? eq ?X {{ a 1 b 2 c 3 }}
+SetValue 0.X {{ a 1 b 2 c 3 }}
+? member_at X ?Y ?Z
+? ...
+{{ X {{ a 1 b 2 c 3 }} Y unset Z unset }}
+No next solution
+$ qlist
+eq ?X {{ a 1 b 2 c 3 }}
+member_at X ?Y ?Z
+$ ?
+? eq ?X {{ a 1 b 2 c 3 }}
+SetValue 0.X {{ a 1 b 2 c 3 }}
+? member_at X ?Y ?Z
+? eq Z 2
+SetValue 0.Y 'a'
+BindValue 0.Z 0.X.a
+? ...
+{{ X {{ a 1 b 2 c 3 }} Y 'a' Z 1 }}
+{{ X {{ a 1 b 2 c 3 }} Y 'b' Z 2 }}
+{{ X {{ a 1 b 2 c 3 }} Y 'c' Z 3 }}
+No next solution
+$ qlist
+eq ?X {{ a 1 b 2 c 3 }}
+member_at X ?Y ?Z
+eq Z 2