use patched shapeless