Feels somehow sufficient to direct all functions to the data field. We can
have a macro like
@foranyfunction f(c::Cubes,a::AnyArgs)=f(c.data,a)
"What you really want to be able to do is delegate everything to the .data
member, but there's no convenient way to do that"
There are some existing macros that take a list of functions and define
them on a type, we can wrap a macro that acts on all functions in
methods(T).
Or allow inheriting from concrete types.
Or allow specifying abstract types like AbstractArray{T,N}.