self-test.hs: add test case for default attribute values
self-test.hs: generalize the 'gives' combinator
self-test.hs: verify that scoped identifiers on the right hand-side of attributes work
Abstract the choice of our monad behind a type 'Eval a'.