I.e. ``` alt (expr) { case (some(?thing)) {} case (none) {} } ``` won't typecheck without explicit type params. The type of expr should contain enough information to deduce the type params.