use `capture` for simplification
simplify further by moving one function capture a level up
assume implicit macro-based checking conversion to spores