xpile 0.1.615

Polyglot transpile workbench (Python/C/C++/Rust/Ruchy/Lean ↔ Rust/Ruchy/PTX/WGSL/SPIR-V) with provable contracts at every layer.
# PMAT-492 (sprint): Python no-arg string transform methods +
# PMAT-493b: startswith/endswith predicates.
# upper/lower/strip lower to Expr::StrMethod (Str); startswith/endswith
# carry a pattern arg and lower to Rust .starts_with/.ends_with (Bool).
def shout(s: str) -> str:
    return s.upper()


def quiet(s: str) -> str:
    return s.lower()


def clean(s: str) -> str:
    return s.strip()


def is_greeting(s: str) -> bool:
    return s.startswith("hello")


def is_question(s: str) -> bool:
    return s.endswith("?")


def words(s: str) -> list[str]:
    return s.split(" ")


def joined(xs: list[str]) -> str:
    return " ".join(xs)