splitpath and catpath should be opposites. Please See https://metacpan.org/module/File::Spec#splitpath. I am using rakudo 2012.09.
my ($volume, $dirs, $filename) = File::Spec.splitpath('lib/Farabi.pm6');
say File::Spec.catpath($volume, $dirs, $filename);
results in the following:
Unable to coerce value for '$start' from WhateverCode to Int; no coercion method defined
in method substr at src/gen/CORE.setting:1994
in method catpath at lib/File/Spec/Unix.pm:113
in method catpath at lib/File/Spec.pm:36
in block at test.p6:5
fix for #1, return strings from splitpath instead of match objects
Thank you for your ticket.