note to self: look into hack pipe tc proposal it seemingly favors non tacit function calls meaning the library should probably switch to data first iteree last