It's weird how many languages represent tests as functions. They rarely take arguments and very rarely (never?) call other tests. Is it the right abstraction?