Reminds me a bit of Project:M36 Relational Algebra Engine, written in Haskell. No nulls allowed.
It works very well. (The biggest hurdle for a really nice integration is IMHO stuff like typing the join operator. But even the dynamically-typed only version was useful.)
I still remember when I hadn't had any clue about functional programming, and I was moving from stuff like QBasic and C to Python. I thought dicts were awesome. And they are---by comparison to only having arrays.
Relations do everything dicts do, but you don't have to decide on the structure beforehand. Exactly the same argument that Codd had.