introduce some helper functions, so that i can express extract.jl in very small amount of code
more code for extract.jl
add more code to extract.jl
construct ranges for extract.jl
i can't figure out how to prepare the ranges
ranges are expanded now
cleanup
found a better way to convert array to tuple
i figured out how to do argument splicing with ... instead of apply