diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,1372 @@
+# Hydra changelog
+
+All notable changes to the Hydra project are documented in this file.
+
+This changelog tracks changes across all Hydra implementations
+(Haskell, Java, Python, Scala, TypeScript, Clojure, Common Lisp, Emacs Lisp, Scheme)
+and supporting infrastructure.
+
+The format is inspired by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and [Apache TinkerPop](https://github.com/apache/tinkerpop/blob/master/CHANGELOG.asciidoc).
+
+Pre-1.0 versions are listed below.
+Untagged versions correspond to in-repository version bumps that were not pushed as Git tags or Hackage releases;
+they are documented here for completeness.
+
+---
+
+## [0.17.0] - 2026-07-01
+
+Major themes: first-class support for effects and I/O in the kernel, TypeScript and
+Scala reaching publishable parity with the other hosts, and continued maturation of
+the published-host build model.
+
+### Highlights
+
+- **Effects and I/O** ([#286](https://github.com/CategoricalData/hydra/issues/286),
+  [#288](https://github.com/CategoricalData/hydra/issues/288),
+  [#494](https://github.com/CategoricalData/hydra/issues/494)): a new `effect` variant
+  on `hydra.core.Type` for representing effectful computations; new kernel modules
+  `hydra.file` (`FilePath`, `FileType`, `FileStatus`, `FileExtension`), `hydra.time`
+  (`Timespec`), and `hydra.error.file`; new primitive libraries `hydra.lib.effects`,
+  `hydra.lib.files`, and `hydra.lib.text` with byte-level I/O; and a new
+  `EffectfulTestCase` mechanism so the common test suite can exercise effectful
+  primitives across hosts.
+- **TypeScript is a complete implementation**
+  ([#462](https://github.com/CategoricalData/hydra/issues/462)): self-hosts and passes
+  the common test suite, with a per-package npm publish pipeline
+  ([#492](https://github.com/CategoricalData/hydra/issues/492)).
+- **Scala publishing**: per-package Maven Central publish infrastructure
+  ([#491](https://github.com/CategoricalData/hydra/issues/491)).
+- **Published-host build model**: published mode now compiles the kernel from the
+  co-generated `dist/haskell` rather than Hackage, removing the need for a
+  `haskell=local` shim ([#500](https://github.com/CategoricalData/hydra/issues/500));
+  the oil-and-water principle and cold-build workflow for `dist/haskell` are documented
+  ([#376](https://github.com/CategoricalData/hydra/issues/376)).
+- **Kernel hygiene**: `uniqueLabel` (apostrophe suffixes) replaced by `chooseUniqueLabel`
+  (numeric suffixes) in `hydra.names`
+  ([#436](https://github.com/CategoricalData/hydra/issues/436)).
+
+### Implementations
+
+Eight hosts self-host and pass the common test suite across five families: Haskell,
+Java, Python, Scala, and the four Lisp dialects (Clojure, Common Lisp, Scheme, Emacs
+Lisp), with TypeScript now joining as a complete host/target. Go remains a "head bud"
+(the coder still has emission bugs and the head's runtime is largely placeholder; it
+does not yet host the test suite).
+
+### New Features
+
+- Translingual cross-reference convention for `doc` strings: doc-escape tags render to
+  each host's native doc syntax (Javadoc, Haddock, Sphinx, TSDoc)
+  ([#433](https://github.com/CategoricalData/hydra/issues/433)).
+- Neo4j JSON-artifact validation demo, exercised across Java, Python, Haskell, and
+  TypeScript ([#510](https://github.com/CategoricalData/hydra/issues/510)).
+
+### Improvements
+
+- The Java/Maven publish set now covers every official Hydra target language, one coder
+  package per implementation family
+  ([#468](https://github.com/CategoricalData/hydra/issues/468)).
+- JVM Maven artifact groups are bifurcated to `net.fortytwo.hydra.java` and
+  `net.fortytwo.hydra.scala`, so the Java and Scala (and future Clojure) publish sets
+  never collide on coordinates
+  ([#519](https://github.com/CategoricalData/hydra/issues/519)).
+- Host-specific third-party integrations (the former `bindings/` tree) are folded into
+  `overlay/`, unifying hand-written host-native source under one tree
+  ([#511](https://github.com/CategoricalData/hydra/issues/511)).
+- The coder de-parameterizes context and error types, simplifying generated coder
+  signatures ([#518](https://github.com/CategoricalData/hydra/issues/518)).
+- TypeScript-to-Java generation now emits the `hydra.lib.*` aggregate namespace
+  interfaces (`Maps`, `Strings`, etc.)
+  ([#499](https://github.com/CategoricalData/hydra/issues/499)).
+
+---
+
+## [0.16.1] - 2026-06-16
+
+Major themes: the first release built by bootstrapping from previously published
+packages, the first full 9 × 9 cross-implementation bootstrapping sweep, and
+published-package self-containment fixes for the artifacts that bootstrap rests on.
+
+### Highlights
+
+- **Bootstrap from published packages**: the build links the published 0.16.0 hosts
+  (Hackage / Maven Central / PyPI) and uses them to build the next version of Hydra,
+  resting on 0.16.0's forward-compatibility guarantees — the published-host consume
+  model with a `--local-host` shim, used for the first time in a release
+  ([#370](https://github.com/CategoricalData/hydra/issues/370)). 0.16.1 still builds
+  against **local** Haskell and Python hosts (`hostOverrides`), because the published
+  0.16.0 artifacts it would otherwise consume are the very ones being repaired below.
+- **First full 9 × 9 bootstrapping sweep** — every implementation generating every
+  other; dozens of cross-host issues surfaced and fixed
+  ([#409](https://github.com/CategoricalData/hydra/issues/409), ongoing).
+- **Published-package self-containment**: relocate each host's hand-written runtime
+  into `overlay/<lang>/hydra-kernel/` so it ships inside the published `hydra-kernel`
+  artifact — Python `hydra.python.util` into the wheel
+  ([#461](https://github.com/CategoricalData/hydra/issues/461),
+  [#472](https://github.com/CategoricalData/hydra/issues/472)) and the Haskell
+  authoring DSL + `Libraries`/`Terms` into the sdist
+  ([#473](https://github.com/CategoricalData/hydra/issues/473)). Generalized to a
+  uniform `overlay/ = transform(packages) + copy(overlay)` model across all hosts
+  ([#434](https://github.com/CategoricalData/hydra/issues/434)).
+- **Kernel self-containment via generated `hydra.lib.*` registries**: primitive
+  names are derived from generated `PrimitiveDefinition` def-modules rather than
+  hand-written name strings, in every host
+  ([#473](https://github.com/CategoricalData/hydra/issues/473)).
+- **In-memory encode/decode synthesis**: derived `hydra.{encode,decode}.*` modules
+  are synthesized at build time and excluded from `dist/`, with the synthesizer (not
+  inference) as the authority for their annotations
+  ([#448](https://github.com/CategoricalData/hydra/issues/448),
+  [#476](https://github.com/CategoricalData/hydra/issues/476)).
+- **Release hardening**: Apache source-release compliance (signed source archive,
+  LICENSE/NOTICE bundling, KEYS) ([#441](https://github.com/CategoricalData/hydra/issues/441)),
+  per-package publish orchestrators ([#449](https://github.com/CategoricalData/hydra/issues/449)),
+  and packaging-boundary verification gated in CI and at publish time
+  ([#472](https://github.com/CategoricalData/hydra/issues/472)).
+
+### New features
+
+- Published-host consume model wired through `bin/sync.sh` for all three hosts
+  (`--published-host` default, `--local-host` shim), with the version basis keyed
+  off `hydra.json` and the `VERSION` file retired
+  ([#370](https://github.com/CategoricalData/hydra/issues/370),
+  [#347](https://github.com/CategoricalData/hydra/issues/347)).
+- Java and Python coder DSL sources made the sole source of truth; the legacy
+  Haskell DSL copies were deleted and cross-package references resolve by name
+  ([#346](https://github.com/CategoricalData/hydra/issues/346)).
+- Per-host `verify-distribution.sh` self-containment gates (Haskell stages the
+  per-package trio and `stack build`s it; Python installs the wheels into an
+  isolated venv and imports the kernel modules; Java resolves the published jars
+  from an offline consumer), run in CI and as a hard gate in `bin/prepare-release.sh`
+  ([#472](https://github.com/CategoricalData/hydra/issues/472)).
+- Apache-compliant canonical source archive: signed + checksummed `git archive`
+  tarball as the release of record, root `NOTICE`, `KEYS`, and a release-verify CI
+  workflow ([#441](https://github.com/CategoricalData/hydra/issues/441)).
+- Per-package publish orchestrators `publish-maven.sh` / `publish-pypi.sh` with
+  dependency-closure and leaves-first ordering checks
+  ([#449](https://github.com/CategoricalData/hydra/issues/449)).
+- `hydra-typescript` published as a target Java/Maven + PyPI artifact
+  ([#468](https://github.com/CategoricalData/hydra/issues/468)).
+- Java coder emits a fluent builder for every generated record type
+  ([#465](https://github.com/CategoricalData/hydra/issues/465)); Python coder emits
+  per-field `with_<field>` copy-update methods and a fluent builder
+  ([#466](https://github.com/CategoricalData/hydra/issues/466)).
+
+### Improvements
+
+- Drop the vestigial `InferenceContext` parameter from the `Primitive.implementation`
+  carrier across all hosts; add a graph-free `funT` coder and six `lists` default
+  implementations ([#446](https://github.com/CategoricalData/hydra/issues/446)).
+- Derive package routing from declared modules; split derived generation into broad
+  `mainDslModules` and scoped `mainEncodingModules`
+  ([#474](https://github.com/CategoricalData/hydra/issues/474),
+  [#475](https://github.com/CategoricalData/hydra/issues/475)).
+- Hash JSON content into the per-package input digest; add `digest-check
+  refresh-input` and a CI guard that force-regenerates and diffs
+  `dist/haskell/hydra-{java,python}` ([#469](https://github.com/CategoricalData/hydra/issues/469)).
+- Per-package inference seeds downstream packages from each package's full universe
+  while inferring only write targets, fixing `hydra-scala` inference within the CI
+  heap budget; declare the `hydra-java` dependency in `hydra-scala` for cold
+  ordering ([#470](https://github.com/CategoricalData/hydra/issues/470)).
+- Remove the vestigial `Lib/Defaults` registry and empty `defaultLibModules`
+  manifest field from all hosts ([#437](https://github.com/CategoricalData/hydra/issues/437)).
+- Bundle LICENSE + NOTICE into Java jars (`META-INF`) and Python wheels
+  (`dist-info`); declare Apache-2.0 in the Scala build
+  ([#441](https://github.com/CategoricalData/hydra/issues/441)).
+- Mark lazy parameters on the Scala and Common Lisp primitive registries so eager
+  coders thunk correctly ([#453](https://github.com/CategoricalData/hydra/issues/453),
+  [#477](https://github.com/CategoricalData/hydra/issues/477),
+  [#425](https://github.com/CategoricalData/hydra/issues/425)).
+- Staging-loop WIP-commit gate to keep `WIP:` commits off `origin/main`
+  ([#466](https://github.com/CategoricalData/hydra/issues/466)).
+
+### Bug fixes
+
+- **Python wheel self-containment**: the `hydra-kernel` wheel now ships
+  `hydra.python.util`; gated by a packaging-boundary smoke test in CI and
+  `publish-pypi.sh` ([#472](https://github.com/CategoricalData/hydra/issues/472),
+  [#461](https://github.com/CategoricalData/hydra/issues/461)).
+- **Haskell sdist self-containment**: track the generated `Hydra/Dsl/Terms.hs`
+  (was gitignored) so the committed dist exports `ToPrimName`, fixing the cold
+  build of the published `hydra-kernel`
+  ([#473](https://github.com/CategoricalData/hydra/issues/473)).
+- Decode synthesizer threads the fully-applied result type into wrap/record/union
+  decoder bodies, so derived decoders emit `DataRow<v>` rather than raw `DataRow`,
+  fixing Java and Scala generic decode compilation
+  ([#476](https://github.com/CategoricalData/hydra/issues/476)).
+- Scala coder emits explicit type arguments for polymorphic non-primitive
+  references under a type application (e.g. `requireField`), fixing `Any`-inference
+  of curried decoder lambda parameters in `decode/typed`
+  ([#434](https://github.com/CategoricalData/hydra/issues/434)).
+- Common Lisp and Emacs Lisp: move the hand-written runtime to a dialect-tier path
+  so it no longer collides with the generated `hydra.lib.*` def-modules
+  ([#434](https://github.com/CategoricalData/hydra/issues/434)).
+- Python coder uses the binding `TypeScheme` as the authoritative source for
+  parameter and return types ([#488](https://github.com/CategoricalData/hydra/issues/488));
+  fixes a duplicate `self` parameter in builders
+  ([#478](https://github.com/CategoricalData/hydra/issues/478)).
+- Sort term definitions by name in source-file generation so non-Haskell hosts emit
+  deterministic alphabetical Haskell output (host-independent of `Maps.elems`
+  iteration order) ([#489](https://github.com/CategoricalData/hydra/issues/489)).
+- Java coder serializes the `static` method modifier (previously a non-exhaustive
+  case) ([#465](https://github.com/CategoricalData/hydra/issues/465)); JavaDoc
+  `@link`/`@param` sanitization for strict doclint
+  ([#449](https://github.com/CategoricalData/hydra/issues/449)).
+- Scala host writer appends a trailing newline when missing, fixing a Lisp-target
+  byte mismatch ([#463](https://github.com/CategoricalData/hydra/issues/463)).
+- Clojure host: silent wrapping `bigint_to_int{8,16,32,64}` casts per the kernel
+  contract ([#483](https://github.com/CategoricalData/hydra/issues/483)); load-order
+  and `--kernel-only` filter fixes after kernel renames
+  ([#425](https://github.com/CategoricalData/hydra/issues/425)); load the
+  `hydra-haskell` baseline for Clojure→Haskell rebuilds
+  ([#487](https://github.com/CategoricalData/hydra/issues/487),
+  [#460](https://github.com/CategoricalData/hydra/issues/460)).
+- Lisp-dialect bootstrap fixes: emit JSON object entries as 2-element `Pair` lists
+  rather than dotted cons ([#452](https://github.com/CategoricalData/hydra/issues/452),
+  also fixing [#16](https://github.com/CategoricalData/hydra/issues/16)); read
+  module names via the correct struct accessor
+  ([#471](https://github.com/CategoricalData/hydra/issues/471)); drop stale
+  surplus flag arguments from `generate-source-files` calls
+  ([#457](https://github.com/CategoricalData/hydra/issues/457),
+  [#458](https://github.com/CategoricalData/hydra/issues/458),
+  [#464](https://github.com/CategoricalData/hydra/issues/464)); rename eta-wrapped
+  projection/unwrap parameters to avoid kernel shadowing
+  ([#428](https://github.com/CategoricalData/hydra/issues/428)); propagate a
+  non-zero exit from the Scheme test runner on failures and fix Scheme float
+  scientific-notation formatting for `|x| >= 1e7`
+  ([#447](https://github.com/CategoricalData/hydra/issues/447)).
+- Cross-host target dispatch: Common Lisp and Clojure hosts dispatch Scala and
+  TypeScript targets ([#482](https://github.com/CategoricalData/hydra/issues/482),
+  [#483](https://github.com/CategoricalData/hydra/issues/483)); Scala/Java host
+  target-dispatch completions ([#5](https://github.com/CategoricalData/hydra/issues/5),
+  [#7](https://github.com/CategoricalData/hydra/issues/7),
+  [#17](https://github.com/CategoricalData/hydra/issues/17)).
+- TypeScript test runtime reads the kernel JSON field names `body`/`signature`
+  (not legacy `term`/`typeScheme`); `lists.nub` dedups by canonical JSON
+  ([#485](https://github.com/CategoricalData/hydra/issues/485)).
+- Sync robustness: always reassemble `dist/python` under `HYDRA_IN_SYNC` to heal
+  partial-dist state ([#480](https://github.com/CategoricalData/hydra/issues/480));
+  persist the run dir on bootstrap prep-phase failures
+  ([#481](https://github.com/CategoricalData/hydra/issues/481)); complete per-host
+  static deps so the bootstrap demo finds fresh dist
+  ([#445](https://github.com/CategoricalData/hydra/issues/445)).
+- Pin the Python target test interpreter to Python ≥ 3.12
+  ([#486](https://github.com/CategoricalData/hydra/issues/486)); Emacs Lisp / Scheme
+  target test-runner re-copy robustness
+  ([#456](https://github.com/CategoricalData/hydra/issues/456)).
+- JavaDoc Pages publish rewritten to build a combined site from the CI-generated
+  `dist/java/` artifact, fixing the failure mode where `pages.yml` ran against a
+  bare checkout with no `dist/java/` present
+  ([#450](https://github.com/CategoricalData/hydra/issues/450)).
+
+### Documentation
+
+- Document the `overlay/` self-containment model, the published-host consume model
+  for all three hosts, the `hydra.json` version / host-version basis, and a
+  migration-shims recipe ([#434](https://github.com/CategoricalData/hydra/issues/434),
+  [#370](https://github.com/CategoricalData/hydra/issues/370),
+  [#347](https://github.com/CategoricalData/hydra/issues/347)).
+- Document the kernel self-containment / `hydra.lib.*` def-module model and the
+  derived-module no-inference invariant
+  ([#473](https://github.com/CategoricalData/hydra/issues/473),
+  [#466](https://github.com/CategoricalData/hydra/issues/466)); generated Java and
+  Python record builders documented in the DSL guides
+  ([#465](https://github.com/CategoricalData/hydra/issues/465),
+  [#466](https://github.com/CategoricalData/hydra/issues/466)).
+- Use absolute GitHub URLs in package READMEs so links resolve when published
+  standalone ([#454](https://github.com/CategoricalData/hydra/issues/454)); bundle a
+  README into each Python package dir for sdist metadata
+  ([#418](https://github.com/CategoricalData/hydra/issues/418)).
+
+---
+
+## [0.16.0] - 2026-06-09
+
+Major themes: primitive-metadata reification, self-hosting coder DSLs with all
+eight hosts passing the common test suite, finalized `hydra.packaging`, and a
+deep kernel-vocabulary cleanup.
+
+### Highlights
+
+- **`PrimitiveDefinition` and per-namespace registry modules** with host-independent
+  specs for every standard-library primitive ([#156](https://github.com/CategoricalData/hydra/issues/156), [#319](https://github.com/CategoricalData/hydra/issues/319)).
+- **Self-hosting coder DSLs; all eight hosts pass the common test suite**, including
+  the completed TypeScript head ([#344](https://github.com/CategoricalData/hydra/issues/344), [#126](https://github.com/CategoricalData/hydra/issues/126)).
+- **Finalized `hydra.packaging`** and a unified `Module.dependencies` field ([#369](https://github.com/CategoricalData/hydra/issues/369), [#354](https://github.com/CategoricalData/hydra/issues/354)).
+- **Kernel-vocabulary cleanup**: `maybe`→`optional` across kernel and hosts, plus
+  order-preserving JSON objects ([#401](https://github.com/CategoricalData/hydra/issues/401), [#398](https://github.com/CategoricalData/hydra/issues/398)).
+
+### New features
+
+- Reify `PrimitiveDefinition` in `hydra.packaging` with per-namespace `hydra.lib.<sub>` registries ([#156](https://github.com/CategoricalData/hydra/issues/156)).
+- Host-independent `comments` specifications for all standard-library primitives ([#319](https://github.com/CategoricalData/hydra/issues/319)).
+- Kernel-oriented style checks in `hydra.validate.*` ([#321](https://github.com/CategoricalData/hydra/issues/321), [#351](https://github.com/CategoricalData/hydra/issues/351), [#352](https://github.com/CategoricalData/hydra/issues/352)), on a reshaped validation API ([#320](https://github.com/CategoricalData/hydra/issues/320)).
+- Promote the JSON Schema coder to a full DSL coder ([#350](https://github.com/CategoricalData/hydra/issues/350)).
+- Transpose coder sources into host-native DSLs for self-hosting ([#344](https://github.com/CategoricalData/hydra/issues/344), [#358](https://github.com/CategoricalData/hydra/issues/358)).
+- `Term`-typed annotations replacing `Map<Name, Term>` ([#386](https://github.com/CategoricalData/hydra/issues/386)).
+- Language-specific EDSL features on the kernel `Language` ([#233](https://github.com/CategoricalData/hydra/issues/233)).
+- Primitive-metadata-driven laziness in eager coders ([#391](https://github.com/CategoricalData/hydra/issues/391)).
+- `/test` skill and `bin/test.sh` for target-language test validation ([#387](https://github.com/CategoricalData/hydra/issues/387)).
+- Automatic differentiation: a `grad` transform ([#324](https://github.com/CategoricalData/hydra/issues/324)).
+- `hydra.show.error.pg` for `InvalidGraphError` ([#374](https://github.com/CategoricalData/hydra/issues/374)).
+
+### Improvements
+
+- Finalize `hydra.packaging`: `Binding`→`TypeDefinition`, `Module`/`Package` `comments`, `moduleName` cleanup ([#369](https://github.com/CategoricalData/hydra/issues/369), [#396](https://github.com/CategoricalData/hydra/issues/396), [#402](https://github.com/CategoricalData/hydra/issues/402), [#404](https://github.com/CategoricalData/hydra/issues/404)).
+- Merge `Module.termDependencies`/`typeDependencies` into one `dependencies` field ([#354](https://github.com/CategoricalData/hydra/issues/354)).
+- Resolve the `maybe`/`optional` ambiguity across kernel and all hosts ([#401](https://github.com/CategoricalData/hydra/issues/401)).
+- Order-preserving JSON objects; order-sensitive `Value` equality ([#398](https://github.com/CategoricalData/hydra/issues/398)).
+- Rename `Namespace`→`ModuleName` ([#316](https://github.com/CategoricalData/hydra/issues/316)) and the phantom DSL types to `Typed*` ([#397](https://github.com/CategoricalData/hydra/issues/397)).
+- Move from a type-class enum to type-class names ([#275](https://github.com/CategoricalData/hydra/issues/275)).
+- Repackage "eval lib" modules as kernel lib modules; promote remaining sources ([#260](https://github.com/CategoricalData/hydra/issues/260), [#355](https://github.com/CategoricalData/hydra/issues/355), [#356](https://github.com/CategoricalData/hydra/issues/356)).
+- Reshape `hydra.context` into `InferenceContext` ([#368](https://github.com/CategoricalData/hydra/issues/368)).
+- Streamline the Haskell, Java, Python, and Scala syntax models, re-pinning Java to SE 21 and Python to the 3.14 PEG grammar ([#297](https://github.com/CategoricalData/hydra/issues/297)).
+- Adopt persistent immutable collections across hosts ([#359](https://github.com/CategoricalData/hydra/issues/359), [#360](https://github.com/CategoricalData/hydra/issues/360), [#361](https://github.com/CategoricalData/hydra/issues/361), [#362](https://github.com/CategoricalData/hydra/issues/362)).
+- Migrate underscored kernel definition names to camelCase ([#348](https://github.com/CategoricalData/hydra/issues/348)).
+- Tidy qualified/unqualified imports in the Haskell DSL sources ([#308](https://github.com/CategoricalData/hydra/issues/308)).
+- Eliminate the `Hydra.Module.Compat` shim ([#315](https://github.com/CategoricalData/hydra/issues/315)).
+- Homogenize writer conventions across target languages ([#339](https://github.com/CategoricalData/hydra/issues/339)).
+- Disambiguate format-version field naming across JSON metadata ([#412](https://github.com/CategoricalData/hydra/issues/412)).
+- Per-package DSL→JSON build with per-package incremental inference ([#381](https://github.com/CategoricalData/hydra/issues/381), [#395](https://github.com/CategoricalData/hydra/issues/395)).
+- Prune stale `dist/` outputs; self-heal digests; exclude digests from VCS; reconcile drift; fail loud ([#357](https://github.com/CategoricalData/hydra/issues/357), [#393](https://github.com/CategoricalData/hydra/issues/393), [#405](https://github.com/CategoricalData/hydra/issues/405), [#378](https://github.com/CategoricalData/hydra/issues/378), [#379](https://github.com/CategoricalData/hydra/issues/379), [#392](https://github.com/CategoricalData/hydra/issues/392), [#414](https://github.com/CategoricalData/hydra/issues/414)).
+- Accept all valid (host, target) pairs in the generation drivers ([#421](https://github.com/CategoricalData/hydra/issues/421)).
+- Move Gradle build infrastructure into `heads/java/`; remove top-level `pixi.toml` ([#384](https://github.com/CategoricalData/hydra/issues/384), [#385](https://github.com/CategoricalData/hydra/issues/385)).
+- Eliminate post-generation test patches; fix loader/runner kludges; re-enable test timing ([#307](https://github.com/CategoricalData/hydra/issues/307), [#309](https://github.com/CategoricalData/hydra/issues/309), [#311](https://github.com/CategoricalData/hydra/issues/311)).
+- Performance/benchmarks and usability assessments ([#277](https://github.com/CategoricalData/hydra/issues/277), [#283](https://github.com/CategoricalData/hydra/issues/283)).
+- Split the Hackage distribution into per-package distributions ([#418](https://github.com/CategoricalData/hydra/issues/418)).
+
+### Bug fixes
+
+- Encode `uint32` JSON literals as numbers, not strings ([#431](https://github.com/CategoricalData/hydra/issues/431)).
+- Satisfy or suppress warnings in generated Java ([#349](https://github.com/CategoricalData/hydra/issues/349)).
+- Restore JSON parser test cases (polymorphic case handling, ordering fallback) ([#336](https://github.com/CategoricalData/hydra/issues/336)).
+- Keep annotations through `termAlternatives`/`typeAlternatives` adaptation ([#353](https://github.com/CategoricalData/hydra/issues/353)).
+- Scala host decodes module JSON containing term definitions ([#342](https://github.com/CategoricalData/hydra/issues/342)).
+- Java coder: fix exponential `let`-bound `cases` cost ([#372](https://github.com/CategoricalData/hydra/issues/372)) and explicit type args on `PersistentMap.ofEntries` ([#394](https://github.com/CategoricalData/hydra/issues/394)).
+- Python-host codegen: drop extra `pyStringToPyStrings` wrapping ([#367](https://github.com/CategoricalData/hydra/issues/367)).
+- `escape_literal_char` no longer mangles RDF triples ([#363](https://github.com/CategoricalData/hydra/issues/363)).
+- Sync robustness: stale coder JSON, omitted native modules, dead helper, bad source dirs ([#406](https://github.com/CategoricalData/hydra/issues/406), [#400](https://github.com/CategoricalData/hydra/issues/400), [#411](https://github.com/CategoricalData/hydra/issues/411), [#408](https://github.com/CategoricalData/hydra/issues/408)).
+- Cross-host self-hosting fixes (Scala, TypeScript, and the four Lisp dialects) ([#422](https://github.com/CategoricalData/hydra/issues/422), [#423](https://github.com/CategoricalData/hydra/issues/423), [#424](https://github.com/CategoricalData/hydra/issues/424), [#429](https://github.com/CategoricalData/hydra/issues/429), [#444](https://github.com/CategoricalData/hydra/issues/444), [#366](https://github.com/CategoricalData/hydra/issues/366), [#389](https://github.com/CategoricalData/hydra/issues/389), [#407](https://github.com/CategoricalData/hydra/issues/407), [#425](https://github.com/CategoricalData/hydra/issues/425), [#426](https://github.com/CategoricalData/hydra/issues/426), [#427](https://github.com/CategoricalData/hydra/issues/427), [#432](https://github.com/CategoricalData/hydra/issues/432), [#438](https://github.com/CategoricalData/hydra/issues/438), [#439](https://github.com/CategoricalData/hydra/issues/439), [#443](https://github.com/CategoricalData/hydra/issues/443)).
+
+### Removed
+
+- Removed the `bigfloat` literal type from `FloatType` and `FloatValue` ([#330](https://github.com/CategoricalData/hydra/issues/330)).
+  Arbitrary-precision floating-point values were inconsistently supported
+  across host languages (Java/Scala in particular lacked a true IEEE 754
+  arbitrary-precision implementation), and nothing in the codebase relied on
+  them. `FloatType` and `FloatValue` now have only `float32` and `float64`
+  variants. Removed library primitives: `bigfloatToBigint`, `bigfloatToFloat32`,
+  `bigfloatToFloat64`, `bigintToBigfloat`, `float32ToBigfloat`,
+  `float64ToBigfloat`, `readBigfloat`, `showBigfloat`, `roundBigfloat`. New
+  primitives `float32ToFloat64` and `float64ToFloat32` (the latter lossy)
+  replace the removed bigfloat-routed conversions.
+- Removed `heads/haskell/bin/assemble-hackage-sdist.sh` ([#418](https://github.com/CategoricalData/hydra/issues/418)), the 0.15-era
+  bridge that flattened the multi-source-dir Haskell head into one self-contained
+  `hydra` sdist. Superseded by the per-package assembler (see Improvements).
+
+### Documentation
+
+- Comprehensive documentation refresh for 0.16 ([#383](https://github.com/CategoricalData/hydra/issues/383))
+  spanning nine tracks across READMEs, `docs/`, the wiki, CLAUDE.md, and
+  in-source kernel comments.
+- New `docs/json-format.md` reference describing the canonical JSON wire format
+  (tagged-union duality, optional-field rules, IEEE 754 sentinels, integer
+  threshold).
+- New wiki pages: `Design` (rationale behind each major choice) and `Inference`
+  (HM type inference with class constraints).
+- Cross-checked every prose doc against current code; corrected drift in
+  primitive-checking sections of `docs/recipes/maintenance.md`, the `Primitive`
+  shape in `docs/implementation.md` and `docs/recipes/adding-primitives.md`,
+  and the build-system narrative.
+- Wove motivation ("the why") through the existing doc surface rather than
+  collecting it into separately-titled sidebars; landed an inference-overview
+  centerpiece on the wiki ([#377](https://github.com/CategoricalData/hydra/issues/377)).
+- Aligned doc vocabulary with the LambdaGraph paper and the literature review
+  for the design space Hydra inhabits.
+- Net-new READMEs for `packages/hydra-kernel`, `packages/hydra-ext`,
+  `packages/hydra-coq`, and `packages/hydra-wasm`; top-level `README.md`
+  now carries a canonical packages table.
+- Audited and refreshed the Claude surface: CLAUDE.md "Where to look up X"
+  table extended with rows for `docs/getting-started.md`, `docs/json-format.md`,
+  and the `Design` / `Inference` wiki pages; hard-rules block reordered by
+  violation frequency; `claude/pitfalls.md` superseded entries folded into
+  `docs/troubleshooting.md` / recipes.
+- Project-descriptor strings reviewed and aligned across 24 build / packaging
+  files (Hackage synopsis, Maven Central description, PyPI / conda-forge
+  classifiers, Hydra-format `package.json` files).
+- `docs/index.html` (the GitHub Pages landing page) refreshed with audience
+  hops into wiki Concepts / Design, `docs/getting-started.md`, and the GitHub
+  repo, plus the full published-artifact list across Hackage, Maven Central,
+  PyPI, and conda-forge.
+- In-source kernel-code rationale comments added at key Sources sites covering
+  injection / pair / either / unit-void duality, error taxonomy, variant
+  records, inference-context threading, validation profiles, reduction state,
+  lexical filters, name mangling, scoping, variable handling, defaults
+  integration, and Tarjan SCC choice rationale. JSON encode/decode modules
+  cross-reference `docs/json-format.md`.
+- Filed `Primitive.implementation` carrier-simplification follow-up
+  ([#446](https://github.com/CategoricalData/hydra/issues/446))
+  to drop the unused `InferenceContext` and `Graph` parameters once the
+  `Lib/Defaults/` integration ([#437](https://github.com/CategoricalData/hydra/issues/437))
+  lands.
+
+---
+
+## [0.15.0] - 2026-04-29
+
+A structural-cleanup release.
+The repository is reorganized into a three-tree
+`packages/` (DSL sources) / `heads/` (per-host runtime) / `dist/` (generated output)
+layout ([#290](https://github.com/CategoricalData/hydra/issues/290)), the kernel is simplified ([#251](https://github.com/CategoricalData/hydra/issues/251), [#292](https://github.com/CategoricalData/hydra/issues/292), [#332](https://github.com/CategoricalData/hydra/issues/332)), and Java + Python now
+ship as per-package publishable artifacts on Maven Central / PyPI / conda-forge
+([#305](https://github.com/CategoricalData/hydra/issues/305)).
+Incremental, content-hash-based caches accelerate the sync pipeline ([#247](https://github.com/CategoricalData/hydra/issues/247)).
+Three new generation-only targets — Coq ([#326](https://github.com/CategoricalData/hydra/issues/326)), WebAssembly ([#325](https://github.com/CategoricalData/hydra/issues/325)), and an
+automatic-differentiation demo ([#324](https://github.com/CategoricalData/hydra/issues/324)) — are in progress as Claude collaborations.
+
+### Highlights
+
+- **Three-tree repository layout**: `packages/` (DSL), `heads/` (host runtime),
+  `dist/` (generated) ([#290](https://github.com/CategoricalData/hydra/issues/290)).
+- **Per-package distributions** for Java (4 Maven artifacts) and Python (5 wheels):
+  `hydra-kernel`, `hydra-pg`, `hydra-rdf`, `hydra-{java,python}`, plus `hydra-ext`
+  on PyPI ([#305](https://github.com/CategoricalData/hydra/issues/305)).
+- **Kernel simplifications**: `Function`/`Elimination` removed ([#332](https://github.com/CategoricalData/hydra/issues/332)),
+  `FunctionPrimitive` removed ([#251](https://github.com/CategoricalData/hydra/issues/251)), `Hydra.Ext.*` prefix retired ([#331](https://github.com/CategoricalData/hydra/issues/331)),
+  `Context` error wrapper gone ([#292](https://github.com/CategoricalData/hydra/issues/292)).
+- **Incremental caches** across the sync pipeline; ~70x speedup on no-op resync ([#247](https://github.com/CategoricalData/hydra/issues/247)).
+- **JSON kernel format v1** with formal wire-format spec and four-field rename ([#343](https://github.com/CategoricalData/hydra/issues/343)).
+- **Three new generation-only targets** (in progress): Coq ([#326](https://github.com/CategoricalData/hydra/issues/326)), WebAssembly ([#325](https://github.com/CategoricalData/hydra/issues/325)),
+  automatic-differentiation demo ([#324](https://github.com/CategoricalData/hydra/issues/324)).
+
+### New features
+
+- Per-package distributions ([#305](https://github.com/CategoricalData/hydra/issues/305)): standalone Maven / PyPI / conda-forge builds,
+  generated `build.gradle` / `pyproject.toml` per package, transitive dep resolution.
+- JSON kernel format v1 ([#343](https://github.com/CategoricalData/hydra/issues/343)): formal spec at `docs/json-format.md`,
+  four-field rename to `typeScheme`, `Module` field reorder, `formatVersion` stamp.
+- `decimal` literal type in the kernel ([#338](https://github.com/CategoricalData/hydra/issues/338)) across all hosts.
+- Type-directed JSON encoder with idiomatic optional encoding ([#314](https://github.com/CategoricalData/hydra/issues/314), [#318](https://github.com/CategoricalData/hydra/issues/318)).
+- Incremental type inference plus content-hash caches ([#247](https://github.com/CategoricalData/hydra/issues/247)).
+- Coq generation target ([#326](https://github.com/CategoricalData/hydra/issues/326), in progress): `hydra-coq` package, 131/131 `.v` files pass `coqc`.
+- WebAssembly target ([#325](https://github.com/CategoricalData/hydra/issues/325), in progress): `hydra-wasm` package, M4 closure mechanism.
+- Automatic-differentiation demo ([#324](https://github.com/CategoricalData/hydra/issues/324), in progress): symbolic source-to-source.
+- `hydra.show.error` module ([#265](https://github.com/CategoricalData/hydra/issues/265)): consolidated error-message builders.
+- `hydra.lib.maybes.toList` primitive ([#257](https://github.com/CategoricalData/hydra/issues/257)).
+- NaN / Inf round-tripping through JSON and per-language serdes ([#312](https://github.com/CategoricalData/hydra/issues/312), [#318](https://github.com/CategoricalData/hydra/issues/318), [#330](https://github.com/CategoricalData/hydra/issues/330)).
+- Typeclass inference test group ([#274](https://github.com/CategoricalData/hydra/issues/274)).
+- Term and type linters ([#232](https://github.com/CategoricalData/hydra/issues/232)).
+- Validation for modules and graphs ([#155](https://github.com/CategoricalData/hydra/issues/155)).
+- User-defined-function (UDF) support and DSL-vs-primitive overrides
+  ([#62](https://github.com/CategoricalData/hydra/issues/62), [#63](https://github.com/CategoricalData/hydra/issues/63), [#102](https://github.com/CategoricalData/hydra/issues/102), [#158](https://github.com/CategoricalData/hydra/issues/158)).
+- Stale-source detection across sync entrypoints ([#228](https://github.com/CategoricalData/hydra/issues/228)).
+
+### Improvements
+
+- Sync infrastructure: matrix tool, per-package orchestrator, per-language wrappers ([#290](https://github.com/CategoricalData/hydra/issues/290)).
+- TestGraph post-generation patches eliminated; DSL emits `TestEnv` refs directly.
+- Minimized standard imports in generated Haskell ([#161](https://github.com/CategoricalData/hydra/issues/161)); improved auto-aliases ([#322](https://github.com/CategoricalData/hydra/issues/322)).
+- Removed kernel term dependencies from the interpreter ([#257](https://github.com/CategoricalData/hydra/issues/257)).
+- Removed `Graph` and `Context` arguments from primitive implementations ([#266](https://github.com/CategoricalData/hydra/issues/266)).
+- Refactored kernel term modules: split rewriting/schemas, renamed show.meta → codegen,
+  moved `Coder` to `coders`, merged `extract.helpers` ([#221](https://github.com/CategoricalData/hydra/issues/221)).
+- Removed Aeson and HsYAML dependencies; YAML coder moved to `hydra-ext` ([#261](https://github.com/CategoricalData/hydra/issues/261)).
+- Lisp recursive let bindings via SCC ([#341](https://github.com/CategoricalData/hydra/issues/341)); parenthesis cleanup ([#84](https://github.com/CategoricalData/hydra/issues/84)).
+- Everything-to-everything bootstrapping demo ([#254](https://github.com/CategoricalData/hydra/issues/254)).
+- Re-enabled skipped Python tests; `disabledForPython` retired ([#263](https://github.com/CategoricalData/hydra/issues/263)).
+- Promoted host-specific code in `packages/` into per-head locations ([#337](https://github.com/CategoricalData/hydra/issues/337)).
+- Migrated `hydra.common` Java module out ([#10](https://github.com/CategoricalData/hydra/issues/10)).
+- Test infrastructure unification under `UniversalTestCase` ([#246](https://github.com/CategoricalData/hydra/issues/246)).
+- Default property graph → RDF mapping ([#296](https://github.com/CategoricalData/hydra/issues/296)).
+- 13 unsafe partial primitives replaced with `Maybe`-returning alternatives ([#201](https://github.com/CategoricalData/hydra/issues/201)).
+- Java generated code uses standard `java.util` collection interfaces ([#313](https://github.com/CategoricalData/hydra/issues/313)).
+- `Term.union` renamed to `Term.inject` ([#334](https://github.com/CategoricalData/hydra/issues/334)).
+- Inconsistencies in domain DSLs cleaned up ([#219](https://github.com/CategoricalData/hydra/issues/219)).
+- Coder packages moved out of hydra-haskell ([#182](https://github.com/CategoricalData/hydra/issues/182)).
+- Java package-naming scheme revised ([#223](https://github.com/CategoricalData/hydra/issues/223)).
+- Decimal used (instead of bigfloat) for JSON numbers ([#340](https://github.com/CategoricalData/hydra/issues/340)).
+- Hydra kernel moved out of hydra-haskell ([#282](https://github.com/CategoricalData/hydra/issues/282)).
+
+### Bug fixes
+
+- `substInTypeScheme` capture-unsafe substitution under nested forall binders.
+- Java `Float64` arithmetic primitives corrected for current `PrimitiveFunction` API.
+- Clojure decimal handling: value-based equality, `BigInteger` return from `decimal_to_bigint`.
+- Scheme runtime R7RS imports for `sets.scm` / `maps.scm` / `eithers.map_set`.
+- Python coder defaults corrected from `Py.Name` to `Py.Expression`.
+- Scala host JSON-decode failure on modules containing term definitions ([#342](https://github.com/CategoricalData/hydra/issues/342)).
+- Lisp coder mutually-recursive let bindings for Clojure ([#341](https://github.com/CategoricalData/hydra/issues/341)).
+
+### Documentation
+
+- Documentation refresh for the 0.15 packaging restructure ([#290](https://github.com/CategoricalData/hydra/issues/290), [#331](https://github.com/CategoricalData/hydra/issues/331)); CLAUDE.md,
+  READMEs, recipes, demos, and seven wiki pages updated.
+- Code-generation recipe rewritten for the per-package dist layout ([#282](https://github.com/CategoricalData/hydra/issues/282)).
+- New `maintenance.md` recipe consolidates non-source-file scans, stale generated
+  detection, design-violation checks, and freshness checks.
+- Documentation style guide added at `docs/documentation-style-guide.md`.
+- Cross-worktree messaging protocol documented in CLAUDE.md.
+- Decimal type documented in the lexicon and per-language READMEs ([#338](https://github.com/CategoricalData/hydra/issues/338)).
+- JSON encoding format docs updated for idiomatic optional encoding ([#314](https://github.com/CategoricalData/hydra/issues/314)).
+
+---
+
+## [0.14.1] - 2026-03-30
+
+Patch release.
+Regenerates all implementations after a fix to the group eval primitive ([#281](https://github.com/CategoricalData/hydra/issues/281)),
+and relocates the property-graph and RDF/SHACL "ext" modules into hydra-java and hydra-python.
+
+### Improvements
+
+- Moved PG, RDF, and SHACL ext modules from hydra-ext into hydra-java and hydra-python.
+
+### Bug fixes
+
+- Group eval primitive fix; all targets regenerated ([#281](https://github.com/CategoricalData/hydra/issues/281)).
+- JavaDoc HTML-entity escaping in generated `DestructuringPattern.java`.
+
+---
+
+## [0.14.0] - 2026-03-29
+
+Major release adding four new complete Hydra implementations — Scala ([#273](https://github.com/CategoricalData/hydra/issues/273)),
+Clojure ([#278](https://github.com/CategoricalData/hydra/issues/278)), Common Lisp, and Scheme — bringing the total to seven bootstrapping hosts
+(plus Emacs Lisp, which passes the test suite but does not yet participate in bootstrapping).
+Also includes kernel simplifications, an Avro bidirectional coder ([#301](https://github.com/CategoricalData/hydra/issues/301)),
+eval primitives ([#281](https://github.com/CategoricalData/hydra/issues/281)), new demos, and significant performance work on the Scheme host.
+
+### Highlights
+
+- **Four new complete implementations**: Hydra-Scala ([#273](https://github.com/CategoricalData/hydra/issues/273)), Hydra-Clojure ([#278](https://github.com/CategoricalData/hydra/issues/278)),
+  Hydra-Common Lisp, and Hydra-Scheme pass the common test suite and can serve as
+  bootstrapping hosts.
+  The four Lisp dialects share a single coder and serializer.
+- **Kernel simplifications**: removed `RowType`/`WrappedType` ([#82](https://github.com/CategoricalData/hydra/issues/82)),
+  unified `Graph`/`TypeContext`/`InferenceContext` ([#192](https://github.com/CategoricalData/hydra/issues/192)),
+  replaced `Module.elements` with `Module.definitions` ([#214](https://github.com/CategoricalData/hydra/issues/214)),
+  consolidated error types ([#268](https://github.com/CategoricalData/hydra/issues/268)), and promoted all staging modules to DSL sources ([#267](https://github.com/CategoricalData/hydra/issues/267)).
+- **Avro bidirectional coder** ([#301](https://github.com/CategoricalData/hydra/issues/301)) with property graph pipeline demo.
+- **Scheme bootstrap performance**: 58 minutes → 5.7 minutes via O(1) vhash data structures
+  and IEEE 754 float precision fixes.
+
+### Breaking changes
+
+- Removed legacy adapter framework; replaced by the staging-promoted variant ([#236](https://github.com/CategoricalData/hydra/issues/236), [#295](https://github.com/CategoricalData/hydra/issues/295)).
+- Replaced legacy Flow monad with Either ([#245](https://github.com/CategoricalData/hydra/issues/245)).
+- Removed `Module.elements`; use `Module.definitions` ([#214](https://github.com/CategoricalData/hydra/issues/214)).
+- Removed `RowType` and `WrappedType` ([#82](https://github.com/CategoricalData/hydra/issues/82)).
+- Renamed `hydra.accessors` to `hydra.paths` ([#271](https://github.com/CategoricalData/hydra/issues/271)).
+- Renamed `hydra.tarjan` and merged into `hydra.sorting` ([#220](https://github.com/CategoricalData/hydra/issues/220)).
+- Merged `hydra.constraints` into `hydra.query` ([#272](https://github.com/CategoricalData/hydra/issues/272)).
+- Moved `hydra.workflow` to hydra-ext ([#270](https://github.com/CategoricalData/hydra/issues/270)).
+- Consolidated `hydra.compute` into `hydra.util` ([#269](https://github.com/CategoricalData/hydra/issues/269)).
+- Removed `hydra.describe` ([#216](https://github.com/CategoricalData/hydra/issues/216)) and types from `hydra.mantle` ([#217](https://github.com/CategoricalData/hydra/issues/217)).
+- Replaced `OtherError` with task-specific error types ([#268](https://github.com/CategoricalData/hydra/issues/268)).
+- Java: lowered minimum Java version to 11 ([#249](https://github.com/CategoricalData/hydra/issues/249)).
+- Java: `Pair` replaces `Tuple2` ([#252](https://github.com/CategoricalData/hydra/issues/252)); `Comparable` implemented for generated classes ([#131](https://github.com/CategoricalData/hydra/issues/131)).
+
+### New features
+
+- Hydra-Scala ([#273](https://github.com/CategoricalData/hydra/issues/273)): complete implementation, sbt/Scala 3, 3043 tests.
+- Hydra-Lisp: Clojure ([#278](https://github.com/CategoricalData/hydra/issues/278)), Common Lisp, Emacs Lisp, Scheme — four dialects,
+  one coder. CI workflows for Clojure, Common Lisp, and Scheme.
+- Avro bidirectional coder ([#301](https://github.com/CategoricalData/hydra/issues/301)) with demo.
+- Eval primitives ([#281](https://github.com/CategoricalData/hydra/issues/281)): Logic, Equality, Math, collections, and Groups.
+- Generated DSL modules ([#180](https://github.com/CategoricalData/hydra/issues/180)): `hydra.dsls` generates DSL helpers from type modules.
+- New demos: GraphQL+JSON ([#279](https://github.com/CategoricalData/hydra/issues/279)), PG validation ([#284](https://github.com/CategoricalData/hydra/issues/284)), SHACL ([#294](https://github.com/CategoricalData/hydra/issues/294)), Avro+PG.
+- Packaging module ([#290](https://github.com/CategoricalData/hydra/issues/290)): `hydra.packaging` with `Package` type and validation.
+- New primitives: `lists.foldr` ([#280](https://github.com/CategoricalData/hydra/issues/280)), `maybes.toList`, float rounding ([#264](https://github.com/CategoricalData/hydra/issues/264), [#285](https://github.com/CategoricalData/hydra/issues/285)).
+- Cross-language benchmarking suite ([#234](https://github.com/CategoricalData/hydra/issues/234)).
+- Limited typeclass inference ([#164](https://github.com/CategoricalData/hydra/issues/164)).
+- Standardized validation patterns across modules ([#291](https://github.com/CategoricalData/hydra/issues/291)).
+
+### Improvements
+
+- Promoted all staging modules to DSL sources ([#267](https://github.com/CategoricalData/hydra/issues/267)).
+- Removed legacy adapters, JSON/YAML coders, grammar framework ([#236](https://github.com/CategoricalData/hydra/issues/236), [#295](https://github.com/CategoricalData/hydra/issues/295)).
+- Java: efficient immutable data structures ([#193](https://github.com/CategoricalData/hydra/issues/193)); flattened term naming.
+- Java: hidden specialized collection classes in type-level files ([#313](https://github.com/CategoricalData/hydra/issues/313)).
+- Inference error messages improved ([#231](https://github.com/CategoricalData/hydra/issues/231)).
+- Combined nested let bindings in the Haskell coder ([#248](https://github.com/CategoricalData/hydra/issues/248)).
+- Simplified `hydra.adapt.simple` ([#255](https://github.com/CategoricalData/hydra/issues/255)).
+- Removed Haskell operators dependency from tests ([#288](https://github.com/CategoricalData/hydra/issues/288)).
+- Regression tests for non-Haskell/Java coders ([#85](https://github.com/CategoricalData/hydra/issues/85)).
+- Regex support added ([#293](https://github.com/CategoricalData/hydra/issues/293)).
+- `hydra.annotations.isNativeType` revisited ([#214](https://github.com/CategoricalData/hydra/issues/214)).
+- Migrated grammar-generated models ([#295](https://github.com/CategoricalData/hydra/issues/295)).
+- `<<= -shouldBe-> <<~` operator change ([#276](https://github.com/CategoricalData/hydra/issues/276)).
+- Minimize Generation.hs ([#225](https://github.com/CategoricalData/hydra/issues/225)).
+- Implemented missing Flows primitives ([#183](https://github.com/CategoricalData/hydra/issues/183)).
+- Removed JavaDocs from the repository ([#262](https://github.com/CategoricalData/hydra/issues/262)).
+- Floating-point test portability fixes for Linux CI ([#264](https://github.com/CategoricalData/hydra/issues/264), [#285](https://github.com/CategoricalData/hydra/issues/285)).
+- Moved YAML coder to hydra-ext ([#224](https://github.com/CategoricalData/hydra/issues/224)).
+- Minimized native Python and Java primitives in favor of DSL implementations ([#244](https://github.com/CategoricalData/hydra/issues/244)).
+- Removed the `disabledForPython` test tag ([#250](https://github.com/CategoricalData/hydra/issues/250)).
+
+### Release tooling
+
+- 0.14 release tracking ([#304](https://github.com/CategoricalData/hydra/issues/304)).
+
+### Documentation
+
+- Thorough cleanup of user documentation ([#302](https://github.com/CategoricalData/hydra/issues/302), [#303](https://github.com/CategoricalData/hydra/issues/303)).
+- Coding style guide added to wiki.
+- Updated 'new implementation' recipe with learnings from Clojure head ([#278](https://github.com/CategoricalData/hydra/issues/278)).
+
+---
+
+## [0.13.0] - 2026-02-27
+
+Major release completing Hydra-Python ([#66](https://github.com/CategoricalData/hydra/issues/66)) and Hydra-Java ([#166](https://github.com/CategoricalData/hydra/issues/166)) as self-hosting Hydra implementations
+and demonstrating mutual self-hosting across all three languages.
+Significant improvements to type inference, type checking, rewriting, and adaptation.
+New language features include first-class Either types, typeclass inference, binary data support,
+and a native JSON parser/writer.
+Comprehensive tooling for cross-implementation bootstrapping
+and provisional support for Go, Rust, and JavaScript targets.
+
+### Highlights
+
+- **Mutual self-hosting across three implementations**: Hydra is now fully self-hosting
+  in Haskell ([#179](https://github.com/CategoricalData/hydra/issues/179)), Java, and Python, and can cross-generate between every combination
+  of host and target language (9 paths total).
+- **Hydra-Java is complete** ([#166](https://github.com/CategoricalData/hydra/issues/166)): all kernel and generation tests pass.
+- **Hydra-Python is complete** ([#66](https://github.com/CategoricalData/hydra/issues/66)): 100% test parity with Haskell.
+- **Language coders promoted into the Hydra kernel** ([#176](https://github.com/CategoricalData/hydra/issues/176)): Haskell, Java, and Python
+  coders are now defined as Hydra DSL modules, making them self-hosting.
+- **Either type support** ([#210](https://github.com/CategoricalData/hydra/issues/210)) with full inference, checking, and library support.
+- **Native JSON parser and writer** ([#188](https://github.com/CategoricalData/hydra/issues/188), [#243](https://github.com/CategoricalData/hydra/issues/243), [#253](https://github.com/CategoricalData/hydra/issues/253)): Hydra's own JSON parser and writer
+  replace the Aeson dependency; bootstrap-from-JSON architecture for cross-implementation
+  code generation.
+
+### Breaking changes
+
+- Renamed `Optional` to `Maybe` throughout the codebase ([#204](https://github.com/CategoricalData/hydra/issues/204)):
+  `hydra.lib.optionals` → `hydra.lib.maybes`; all `optional` variants renamed to `maybe`.
+- Removed unlabeled product and sum types; replaced with pair types ([#212](https://github.com/CategoricalData/hydra/issues/212)).
+- Renamed `hydra.core.TypedTerm` to `hydra.core.TypeApplicationTerm`.
+- Renamed `hydra.json` to `hydra.json.model`.
+- Renamed `hydra.lib.maps.remove` to `hydra.lib.maps.delete`.
+- Removed deprecated `hydra.decoding` module.
+- Removed old `hydra.mantle.Either` type (replaced by core `Either`).
+- Removed `hydra.lib.tuples` library.
+- Removed C# coder stub (C# syntax model remains).
+- DSL syntax migration: removed `OverloadedStrings` for term expressions ([#238](https://github.com/CategoricalData/hydra/issues/238)).
+- Removed `Hydra.Dsl.ShorthandTypes` ([#222](https://github.com/CategoricalData/hydra/issues/222)).
+
+### New features
+
+- Self-hosting in Haskell ([#179](https://github.com/CategoricalData/hydra/issues/179)) and full mutual cross-generation (Haskell ↔ Java ↔ Python).
+- New bootstrapping demo validating all 9 paths across 249 modules.
+- Promoted Haskell, Java, and Python coders from staging code into Hydra DSL sources ([#176](https://github.com/CategoricalData/hydra/issues/176)).
+- JSON-as-source-of-truth bootstrapping architecture ([#243](https://github.com/CategoricalData/hydra/issues/243), [#253](https://github.com/CategoricalData/hydra/issues/253)):
+  new executables and scripts enabling `bootstrap-from-json` for cross-implementation
+  code generation.
+- Generated term encoders and decoders replace legacy hand-coded modules ([#47](https://github.com/CategoricalData/hydra/issues/47)).
+- Hydra-Python completion ([#66](https://github.com/CategoricalData/hydra/issues/66)): restructured project layout with `src/main` and
+  `src/gen-main` ([#191](https://github.com/CategoricalData/hydra/issues/191)); full library implementations including `hydra.lib.flows`;
+  `@lru_cache` optimization for nullary bindings; PyPy compatibility.
+- Hydra-Java completion ([#166](https://github.com/CategoricalData/hydra/issues/166)): all kernel and generation tests pass; deep changes
+  to Java coder; `Lazy` utility class for delayed evaluation; array-type support
+  in Java serde; tail-call optimization in the Java coder; `Tuple` implements `Comparable`.
+- Either type ([#210](https://github.com/CategoricalData/hydra/issues/210)): `EitherType`, `either` term constructor, `hydra.lib.eithers` library
+  with `either`, `map`, `mapList`, `mapMaybe`, `bimap`, `bind`, `fromLeft`, `fromRight`,
+  `isLeft`, `isRight`, `lefts`, `rights`, `partitionEithers`.
+- Pair type as a core construct ([#211](https://github.com/CategoricalData/hydra/issues/211)).
+- Void type ([#237](https://github.com/CategoricalData/hydra/issues/237)): uninhabited `void` type as the dual of `unit`; type-level only.
+- Native JSON parser and writer ([#188](https://github.com/CategoricalData/hydra/issues/188), [#242](https://github.com/CategoricalData/hydra/issues/242)):
+  bidirectional JSON encoder/decoder; replaces the Aeson dependency;
+  cross-checked via a special test runner.
+- Typeclass inference ([#164](https://github.com/CategoricalData/hydra/issues/164)):
+  type schemes with typeclass constraints via `TypeVariableMetadata`;
+  typeclass metadata on primitive definitions; Haskell coder uses typeclass info.
+- Binary/`ByteString` support ([#172](https://github.com/CategoricalData/hydra/issues/172)): binary data via `ByteString` instead of `String`;
+  Haskell coder uses `Data.ByteString`; new `binaryToBytes` primitive.
+- Parser combinators: new `hydra.parsing` module with combinator types and DSL.
+- Higher-order primitive interpreter ([#198](https://github.com/CategoricalData/hydra/issues/198)): all primitives are fully interpretable
+  across all three implementations; legacy `requiresInterp` tag removed.
+- Let hoisting and flattening: hoisting polymorphic let terms;
+  refined hoisting for monomorphic bindings inside polymorphic ones;
+  more efficient `liftLambdaAboveLet` ([#202](https://github.com/CategoricalData/hydra/issues/202));
+  case-statement hoisting ([#241](https://github.com/CategoricalData/hydra/issues/241)); subterm hoisting helpers.
+- Provisional language targets: Go ([#65](https://github.com/CategoricalData/hydra/issues/65)), Rust (with experimental type-level coder),
+  JavaScript (syntax model, serde, DSL, generated sources), and Java/Python syntax DSLs.
+- New adapter framework ([#236](https://github.com/CategoricalData/hydra/issues/236)): all external coders refactored
+  (Haskell, YAML, Scala, JSON Schema, C++, PDL, Protobuf, GraphQL).
+- Compact labeled records and variants ([#122](https://github.com/CategoricalData/hydra/issues/122)).
+- New primitives:
+  `hydra.lib.lists.find`, `hydra.lib.lists.partition`,
+  `hydra.lib.flows.withDefault`, `hydra.lib.flows.foldl`,
+  `hydra.lib.math.{max,min,abs,pred,signum,succ,even,odd}`,
+  `hydra.lib.pairs.bimap`, `hydra.lib.eithers.bind`,
+  `hydra.lib.literals.binaryToBytes`, complete `readXxx`/`showXxx` families,
+  `hydra.lexical.chooseUniqueName`, `neg` renamed to `negate`,
+  full floating-point math primitives in Python ([#208](https://github.com/CategoricalData/hydra/issues/208)).
+- DeepCore DSL: a layer one level deeper than the Meta DSLs,
+  for programs that construct programs that construct terms.
+- `typeOf` implementation ([#168](https://github.com/CategoricalData/hydra/issues/168)).
+- Implement `Comparable` for generated Java classes ([#131](https://github.com/CategoricalData/hydra/issues/131)); update of Hydra-Java ([#166](https://github.com/CategoricalData/hydra/issues/166)).
+- Compact labeled records exploration ([#122](https://github.com/CategoricalData/hydra/issues/122)).
+- Comparison primitives without typeclasses ([#187](https://github.com/CategoricalData/hydra/issues/187)).
+- Investigated core support for Either and Flow monads ([#200](https://github.com/CategoricalData/hydra/issues/200)).
+
+### Improvements
+
+- Type system:
+  - Refactored `hydra.inference` to create new module `hydra.checking`.
+  - Inference checks after unification to prevent schema names from being unified
+    with inferred type variables.
+  - Type application terms preserved when preparing application terms for Python.
+  - Sanity-check tuple projection index against arity during inference.
+  - Bind lost type variables in term annotations.
+  - Made `extendTypeContextForLet` tolerant of untyped bindings.
+- Code generation:
+  - Python: support for deeply-nested match statements; more complete `let` support;
+    Pythonic syntax for polymorphic function definitions; refinements for complex
+    case-hoisting scenarios; performance improvements ([#209](https://github.com/CategoricalData/hydra/issues/209), [#239](https://github.com/CategoricalData/hydra/issues/239), [#240](https://github.com/CategoricalData/hydra/issues/240)); inline
+    let/case rewriting for Python targets ([#203](https://github.com/CategoricalData/hydra/issues/203)).
+  - Java: method declaration style consistent with calling style.
+  - Haskell: standardized typeclass names.
+  - Increased maximum trace depth to support more complex sources.
+- Common test suite promotion: all tests promoted into a shared, implementation-independent
+  test kernel ([#213](https://github.com/CategoricalData/hydra/issues/213)).
+- Statically-compiled test suite in Haskell ([#207](https://github.com/CategoricalData/hydra/issues/207)).
+- Included all Hydra kernel types in test schema ([#205](https://github.com/CategoricalData/hydra/issues/205)).
+- Reorganized Haskell DSL definitions; standardized imports.
+- Added TODO comments to all unsafe primitives ([#201](https://github.com/CategoricalData/hydra/issues/201)).
+- New `rewriteAndFoldTerm` utility for simultaneous rewriting and folding.
+- Lexical helper for dereferencing schema types through aliases.
+- Made JSON parser lazy with new `lazy` parser combinator.
+- More efficient substitution helpers for empty substitutions.
+- Precomputed type/inference context in kernel test runner for performance.
+- Property graph encoding and decoding modules promoted into DSL.
+- `hydra.tabular` and `hydra.pg.graphson` modules promoted into DSL.
+- `hydra.show.*` modules generated into Java and Python.
+- Aligned epsilon encoding with the LambdaGraph spec ([#89](https://github.com/CategoricalData/hydra/issues/89)).
+- Fixed asymmetry of introductions and eliminations ([#86](https://github.com/CategoricalData/hydra/issues/86), [#134](https://github.com/CategoricalData/hydra/issues/134)).
+- Minimized inferred type annotations ([#114](https://github.com/CategoricalData/hydra/issues/114)).
+- Investigated combining products with records, sums with unions ([#196](https://github.com/CategoricalData/hydra/issues/196), [#212](https://github.com/CategoricalData/hydra/issues/212)).
+- Refined type reduction in adapters ([#144](https://github.com/CategoricalData/hydra/issues/144)).
+- Investigation of unification issues ([#163](https://github.com/CategoricalData/hydra/issues/163)).
+- Refactored RowType ([#82](https://github.com/CategoricalData/hydra/issues/82)).
+- LLM-assisted PG schemas and mappings ([#171](https://github.com/CategoricalData/hydra/issues/171)).
+- Simplified unit-valued variants in Python ([#206](https://github.com/CategoricalData/hydra/issues/206)).
+- Checked for inconsistencies between Term/TTerm and Type/TType DSLs ([#218](https://github.com/CategoricalData/hydra/issues/218)).
+- GenPG demo: refactored to support Haskell, Python, and Java; Python runner;
+  Java generation; finalized output format.
+- Testing: extended test runners for let hoisting (Haskell, Python, Java);
+  floating-point precision tests; ordering tests for `hydra.lib.maps`/`hydra.lib.sets`;
+  inference tests for inferred System F terms; case-hoisting test cases; new JSON coder tests;
+  thorough test cases for all primitives ([#199](https://github.com/CategoricalData/hydra/issues/199)).
+
+### Bug fixes
+
+- Fixed interpreter bugs causing test failures ([#235](https://github.com/CategoricalData/hydra/issues/235)).
+- Fixed bug in type checking in connection with dead code.
+- Fixed bug in `removeTypesFromTerm`.
+- Fixed bug in `typeOfMap`.
+- Fixed 32-bit max int value in `hydra.constants`.
+- Fixed numeric precision in Python.
+- Added `BigDecimal` support and fixed `uint8` (short) support in Java.
+- Fixed Haskell coder with respect to imports for binary literals.
+- Excluded `Prelude.encodeFloat` and `Prelude.decodeFloat` from generated Haskell
+  due to name collisions.
+- Fixed consistency issues in Python primitives:
+  `hydra.lib.sets.toList`, `hydra.lib.maps.union` (precedence),
+  `hydra.lib.strings.lines`, `hydra.lib.strings.readString` (dequoting),
+  `hydra.lib.lists.apply`, `hydra.lib.maps.toList`.
+- Fixed Haskell type signature of `hydra.lists.span`.
+- Fixed issue with eta expansion of typed terms.
+- Fixed shadowing issue in generated encoding modules.
+- Added missing alternatives in `hydra.rewriting.rewriteTermM`.
+
+### Documentation
+
+- Updated main README with complete implementation status.
+- Added Documentation sections to all implementation READMEs.
+- Fixed outdated Code-organization.md (Python now uses `src/gen-main`).
+- Fixed incorrect code paths in Implementation.md.
+- Added Java section to Testing wiki.
+- Comprehensive developer recipes in `docs/recipes/`.
+- Documentation for tail-call optimization implementation.
+- Added Haddock comments to Haskell primitives.
+- Created wiki page on the release process ([#194](https://github.com/CategoricalData/hydra/issues/194)).
+
+### Community
+
+- Accepted babeloff's `isTrivialTerm` changes.
+
+---
+
+## [0.12.0] - 2025-08-28
+
+A consolidation release: significant Python progress, kernel-level cleanup,
+and a wave of bookkeeping closures for Hydra-Java module ports.
+
+### Breaking changes
+
+- Removed `hydra.decoding` module ([#190](https://github.com/CategoricalData/hydra/issues/190)).
+- Flattened dependency tiers; eliminated tier-1, tier-2, tier-3 organization ([#184](https://github.com/CategoricalData/hydra/issues/184)).
+- Removed `typed` term variant ([#173](https://github.com/CategoricalData/hydra/issues/173), [#162](https://github.com/CategoricalData/hydra/issues/162)).
+- Module naming changes: moved tabular and relational modules into kernel ([#152](https://github.com/CategoricalData/hydra/issues/152)).
+- Standardized on uncurried helper functions in term-level DSLs ([#174](https://github.com/CategoricalData/hydra/issues/174)).
+- Renamed `hydra.lib.flows.traverseOptional` to `hydra.lib.flows.mapOptional`.
+- Eliminated camel-cased namespace parts from the kernel ([#152](https://github.com/CategoricalData/hydra/issues/152)).
+- Replaced list and optional eliminations with primitive functions ([#150](https://github.com/CategoricalData/hydra/issues/150)).
+- Moved `Hydra.Ext` to hydra-ext ([#178](https://github.com/CategoricalData/hydra/issues/178)); moved 'ext' sources into hydra-ext ([#189](https://github.com/CategoricalData/hydra/issues/189)).
+
+### New features
+
+- Significant progress toward Hydra-Python completion:
+  generated all kernel types and terms into Python;
+  added `Decimal` support for bigfloat values;
+  environment tracking for variable scoping;
+  generated `hydra.languages` into Python;
+  `__hash__` and `__eq__` on serializable generated classes ([#160](https://github.com/CategoricalData/hydra/issues/160)).
+- Designated `unit` term and type variants ([#186](https://github.com/CategoricalData/hydra/issues/186)).
+- `hydra.lib.flows.mapElems` and `hydra.lib.flows.mapKeys` utilities.
+- Promoted JSON coder into the DSL ([#181](https://github.com/CategoricalData/hydra/issues/181)).
+- Promoted JSON utilities into the DSL ([#181](https://github.com/CategoricalData/hydra/issues/181)).
+- C# coder ([#139](https://github.com/CategoricalData/hydra/issues/139)).
+- GQL model and parser ([#140](https://github.com/CategoricalData/hydra/issues/140)).
+- Tabular adapters ([#142](https://github.com/CategoricalData/hydra/issues/142)).
+- Type-level C++ coder ([#170](https://github.com/CategoricalData/hydra/issues/170)).
+- Variable-types-to-Haskell-typedefs transformation ([#70](https://github.com/CategoricalData/hydra/issues/70)).
+- A newline at the end of each generated file ([#154](https://github.com/CategoricalData/hydra/issues/154)).
+- Refactor kernel modules and primitives by connectivity ([#177](https://github.com/CategoricalData/hydra/issues/177)).
+
+### Improvements
+
+- Condensed repeated elements in error traces ([#165](https://github.com/CategoricalData/hydra/issues/165)).
+- Fixed transitive schema dependencies ([#185](https://github.com/CategoricalData/hydra/issues/185)).
+- Improved adapter solution with respect to literals.
+- Better handling of type variables in Python coder.
+- Enhanced term-level Python generation with proper ordering to minimize forward references.
+- Topo-sort helper function for dependency management.
+- Updated all Python libraries with latest changes.
+- Distinguished between deannotation and detyping of terms.
+- Adapted primitives when applying language constraints to a graph.
+- Use unqualified names where possible in generated code ([#153](https://github.com/CategoricalData/hydra/issues/153)).
+- Eliminated `Data.Graph` (containers) dependency ([#167](https://github.com/CategoricalData/hydra/issues/167)).
+- "Close the loop" demonstration ([#175](https://github.com/CategoricalData/hydra/issues/175)).
+- Implemented `typeOf` ([#168](https://github.com/CategoricalData/hydra/issues/168)).
+
+### Bug fixes
+
+- Fixed System F terms for records and case statements ([#168](https://github.com/CategoricalData/hydra/issues/168)).
+- Fixed issue with transitive type-level module dependencies ([#185](https://github.com/CategoricalData/hydra/issues/185)).
+- Corrected handling of variable references in Python application terms.
+- Fixed nullary functions in Python (added empty parens).
+- Added missing alternatives in `hydra.rewriting.rewriteTermM`.
+
+### Bookkeeping
+
+- Closed long-standing Hydra-Java module-port issues
+  ([#9](https://github.com/CategoricalData/hydra/issues/9), [#11](https://github.com/CategoricalData/hydra/issues/11), [#15](https://github.com/CategoricalData/hydra/issues/15), [#16](https://github.com/CategoricalData/hydra/issues/16), [#18](https://github.com/CategoricalData/hydra/issues/18), [#19](https://github.com/CategoricalData/hydra/issues/19), [#20](https://github.com/CategoricalData/hydra/issues/20), [#21](https://github.com/CategoricalData/hydra/issues/21), [#22](https://github.com/CategoricalData/hydra/issues/22), [#23](https://github.com/CategoricalData/hydra/issues/23), [#25](https://github.com/CategoricalData/hydra/issues/25), [#44](https://github.com/CategoricalData/hydra/issues/44), [#45](https://github.com/CategoricalData/hydra/issues/45));
+  most of the underlying work shipped in earlier releases.
+- Closed Hydra-Java DSL-port issues ([#24](https://github.com/CategoricalData/hydra/issues/24), [#26](https://github.com/CategoricalData/hydra/issues/26), [#27](https://github.com/CategoricalData/hydra/issues/27), [#28](https://github.com/CategoricalData/hydra/issues/28), [#29](https://github.com/CategoricalData/hydra/issues/29)) and
+  the Scala/Avro tracking issues ([#77](https://github.com/CategoricalData/hydra/issues/77), [#81](https://github.com/CategoricalData/hydra/issues/81)); these had been resolved
+  by earlier releases (Scala in 0.14.0, Avro bidi in 0.14.0).
+
+### Documentation
+
+- Updated Hydra-Haskell README.
+- Updated Hydra-Java README with corrected links.
+- Updated JavaDocs.
+
+---
+
+## [0.11.0] - 2025-03-16
+
+Untagged in-repository version.
+A type-inference rebase release: major restructuring of inference internals
+to align with Algorithm W, plus a sweeping removal of explicit type annotations
+across the kernel.
+
+### Highlights
+
+- **Inference rebased on Algorithm W** ([#118](https://github.com/CategoricalData/hydra/issues/118)): unify-early strategy ([#146](https://github.com/CategoricalData/hydra/issues/146)),
+  infinite-type checks restored ([#116](https://github.com/CategoricalData/hydra/issues/116)), recursive-element inference ([#90](https://github.com/CategoricalData/hydra/issues/90)),
+  unified handling of elements and let bindings ([#112](https://github.com/CategoricalData/hydra/issues/112)), minimized manual
+  type annotations ([#119](https://github.com/CategoricalData/hydra/issues/119)).
+- **`hydra.inference` module** introduced for inference type definitions;
+  substitution and unification moved up a level.
+
+### Breaking changes
+
+- Argument order of `Logic.ifElse` changed ([#147](https://github.com/CategoricalData/hydra/issues/147)).
+
+### New features
+
+- Inference test cases promoted into the common test suite ([#148](https://github.com/CategoricalData/hydra/issues/148));
+  added "kernel examples" inference tests; more recursion / mutual recursion cases.
+
+### Improvements
+
+- Removed type annotations across all kernel sources ([#119](https://github.com/CategoricalData/hydra/issues/119)).
+- Migrated to fully-applied primitive library DSLs ([#157](https://github.com/CategoricalData/hydra/issues/157)).
+- Aligned `Graph` and `Element` with `LetBinding` ([#159](https://github.com/CategoricalData/hydra/issues/159)).
+- `hydra.core.Unit` recognized by the Haskell coder.
+- Refactored inference tests.
+
+### Bug fixes
+
+- Fix for underdetermined type in `hydra.decode`.
+
+---
+
+## [0.10.0] - 2025-02-19
+
+Untagged in-repository version.
+Adds Hydra-Python (initial completion), a GraphSON coder,
+provisional Hydra-Go support, and dot-separated namespace conventions.
+
+### Highlights
+
+- **Hydra-Python initial completion** ([#80](https://github.com/CategoricalData/hydra/issues/80), [#66](https://github.com/CategoricalData/hydra/issues/66)): Python coder, generated kernel
+  modules in Python, and full library implementations across kernel namespaces.
+- **GraphSON coder** ([#79](https://github.com/CategoricalData/hydra/issues/79)).
+- **Provisional Hydra-Go** ([#65](https://github.com/CategoricalData/hydra/issues/65)).
+- **Namespace formatting** standardized to dot-separated form ([#151](https://github.com/CategoricalData/hydra/issues/151)).
+
+### Breaking changes
+
+- All namespaces use dot-separated form ([#151](https://github.com/CategoricalData/hydra/issues/151)).
+
+### New features
+
+- Hydra-Python: Python coder; generated `hydra.coreEncoding`, `hydra.strip`,
+  `hydra.literals` and other kernel modules in Python; tuple-expression support;
+  updated `hydra.constants` in Python.
+- GraphSON coder ([#79](https://github.com/CategoricalData/hydra/issues/79)).
+- Provisional Hydra-Go ([#65](https://github.com/CategoricalData/hydra/issues/65)).
+- `string-to-char-list` and `char-list-to-string` primitives ([#149](https://github.com/CategoricalData/hydra/issues/149)).
+- Restored normalization for generated term variables ([#145](https://github.com/CategoricalData/hydra/issues/145)).
+
+### Improvements
+
+- Re-leveled dependency tiers ([#135](https://github.com/CategoricalData/hydra/issues/135)).
+- Updated all Java, Haskell, hydra-ext, and Python primitives to current sources.
+
+---
+
+## [0.9.0] - 2025-01-06
+
+Untagged in-repository version.
+Bootstraps Hydra-Python and the JSON Schema coder; introduces a fluent Java DSL for flows.
+
+### Highlights
+
+- **JSON Schema coder** ([#141](https://github.com/CategoricalData/hydra/issues/141)).
+- **Python coder scaffold**: serde, language constraints, and generated Haskell
+  sources for Python.
+- **Fluent-style Java DSL for flows** ([#143](https://github.com/CategoricalData/hydra/issues/143)).
+
+### New features
+
+- JSON Schema coder ([#141](https://github.com/CategoricalData/hydra/issues/141)).
+- Python coder scaffold and serde.
+- Provisional Python language constraints module.
+- Fluent-style Java DSL for flows ([#143](https://github.com/CategoricalData/hydra/issues/143)); moved Flows DSL into `hydra.dsl`.
+- New `hydra.coders` DSL.
+- New DSL functions for core variants.
+
+### Improvements
+
+- Generalized `Namespaces` so it can be used for languages other than Haskell.
+- Local-name-only Python type aliases (the directory tree provides the namespace).
+- Coders DSL used to simplify Java language-constraint sources.
+- Removed redundant productions in the Python grammar.
+- Added unit tests for fluent flows.
+
+### Documentation
+
+- Updated JavaDocs for 0.9.0.
+
+---
+
+## [0.8.1] - 2024-09-24
+
+Patch release.
+
+### Improvements
+
+- Generalized the property graph merging utility to accept type systems other than Hydra Core.
+
+---
+
+## [0.8.0] - 2024-09-09
+
+C# support ([#139](https://github.com/CategoricalData/hydra/issues/139)), Graphviz DOT coder, term accessors, and a small breaking change in Java
+to support Spark.
+
+### Breaking changes
+
+- Made `FlowException` serializable for Spark support (may affect existing error handling).
+
+### New features
+
+- C# syntax module based on the Microsoft ANTLR grammar ([#139](https://github.com/CategoricalData/hydra/issues/139)).
+- Graphviz DOT coder ([#136](https://github.com/CategoricalData/hydra/issues/136)):
+  full support for lambdas and recursive `let` statements;
+  compact 'accessor graph' visualization option;
+  customizable label styles;
+  highlighted let-bound terms; edge labels.
+- Term accessor type to facilitate lenses and path-aware transformations.
+- OpenGQL grammar and generated Haskell for the OpenGQL model ([#140](https://github.com/CategoricalData/hydra/issues/140)).
+
+### Improvements
+
+- Added `</>` as alternative to `@@` application operator in Haskell DSLs.
+- Utilities for working with term accessors.
+- More specific exception class for JSON decoding.
+- Additional convenience methods on `JsonDecoding.java`.
+- Used transitive dependencies in hydra-java and hydra-ext.
+- Upgraded ANTLR to address a vulnerability.
+- Moved TinkerPop utilities from `hydra/ext/org/apache/tinkerpop` into `hydra/pg`.
+
+---
+
+## [0.7.0] - 2024-08-21
+
+Major refactoring of module organization and namespace management.
+Establishes the DNS-style namespace convention in hydra-ext
+and lifts property-graph models into a top-level `hydra/pg` namespace.
+
+### Breaking changes
+
+- Namespace reorganization: migrated to DNS-based module naming in hydra-ext ([#138](https://github.com/CategoricalData/hydra/issues/138)):
+  `hydra/ext/avro` → `hydra/ext/org/apache/avro`,
+  `hydra/ext/graphql` → `hydra/ext/org/graphql`,
+  `hydra/ext/yaml` → `hydra/ext/org/yaml`,
+  `hydra/ext/json/decoding` → `hydra/ext/org/json/decoding`,
+  `hydra/ext/rdf` → `hydra/ext/org/w3/rdf`,
+  `hydra/ext/shacl` → `hydra/ext/org/w3/shacl`,
+  `hydra/ext/tinkerpop` → `hydra/ext/org/apache/tinkerpop`.
+- Property graphs: promoted property graph modules from
+  `hydra/ext/org/apache/tinkerpop` to `hydra/pg`.
+- Project structure: renamed `hydra-extensions` to `hydra-ext`;
+  renamed `hydra/langs` to `hydra/ext` ([#138](https://github.com/CategoricalData/hydra/issues/138));
+  made hydra-ext into a Gradle subproject alongside hydra-java;
+  added top-level Gradle build.
+
+### Improvements
+
+- Moved TinkerPop modules from hydra-haskell into hydra-ext for better separation.
+- Moved miscellaneous models to `Hydra.Ext.Other` ([#138](https://github.com/CategoricalData/hydra/issues/138)).
+- Moved XML Schema, SQL, ShEx, and OWL models to hydra-ext.
+- Moved KQL, Parquet, and Python modules to hydra-ext.
+- Separated JavaDocs for hydra-java and hydra-ext.
+- Updated publishing configuration in `build.gradle`.
+
+---
+
+## [0.6.0] - 2024-08-19
+
+Type-system improvements (System F type abstraction/application; eliminated polymorphic
+types from Hydra Core), expanded language support (Graphviz DOT model, generated Java
+field-name constants), and revamped annotation handling.
+
+### Breaking changes
+
+- Eliminated `InferenceContext` helper type ([#103](https://github.com/CategoricalData/hydra/issues/103)).
+- Changed typing environment from `Map Name Type` to `Map Name TypeScheme` in graphs ([#76](https://github.com/CategoricalData/hydra/issues/76)).
+- Updated annotations and flows to use `map<Name, Term>` instead of `map<string, Term>` ([#133](https://github.com/CategoricalData/hydra/issues/133)).
+- Unified `Name` and `FieldName`; aliased to `string` ([#121](https://github.com/CategoricalData/hydra/issues/121)).
+- Renamed `hydra/core.UnitType` to `hydra/core.Unit` ([#123](https://github.com/CategoricalData/hydra/issues/123)).
+- Eliminated annotation classes; Hydra has a single built-in notion of annotations ([#113](https://github.com/CategoricalData/hydra/issues/113)).
+- Unified the `Nominal` type with `RowType` ([#115](https://github.com/CategoricalData/hydra/issues/115)).
+- Removed the `extends` parameter for row types ([#132](https://github.com/CategoricalData/hydra/issues/132)).
+- Replaced `hydra/Kv` with `hydra/Annotations` (rename revisited).
+
+### New features
+
+- System F support: `typeAbstraction` and `typeApplication` term constructors.
+- Python3 syntax model based on the official Python BNF ([#80](https://github.com/CategoricalData/hydra/issues/80)).
+- Graphviz DOT model and initial support ([#136](https://github.com/CategoricalData/hydra/issues/136)).
+- Field-name constants generated in Java code generation ([#137](https://github.com/CategoricalData/hydra/issues/137)).
+- Provisional Algorithm W implementation in Haskell (originally from @wisnesky), kept for reference.
+
+### Improvements
+
+- Primitive organization: Hydra primitives organized into libraries for namespace management.
+- Code generation:
+  - Escaped field name constants and `with_` methods in Java coder.
+  - Generated field name constants in Java ([#137](https://github.com/CategoricalData/hydra/issues/137)).
+  - Avoided duplicated comments in wrapper classes in generated Java.
+  - Removed superfluous newtype comments in Haskell coder.
+- Updated Delta Parquet model to follow the Java API more closely.
+- Enriched OpenCypher features module with the complete list of standard Cypher functions.
+- Added convenience methods to `JsonEncoding.java`.
+- Restored `Hydra.Inference` subdirectory.
+- Allowed arbitrary case for element names ([#7](https://github.com/CategoricalData/hydra/issues/7)).
+- Corrected `uint8` representation in Java to `Short` ([#120](https://github.com/CategoricalData/hydra/issues/120)).
+
+### Bug fixes
+
+- Fixed handling of type annotations in term adapters.
+- Fixed decoding of encoded terms annotated with a type.
+- Corrected encoding of universal types in `showTerm` ([#117](https://github.com/CategoricalData/hydra/issues/117)).
+
+---
+
+## [0.5.3] - 2024-08-06
+
+Patch release.
+Preserves order of map key/value pairs and set elements during JSON serialization.
+
+### Bug fixes
+
+- Preserved ordering of key/value pairs and set elements in JSON output.
+
+### New features
+
+- Polymorphic `equal` primitive in Haskell and Java.
+- Generated Hydra type definitions together with native instantiations of Hydra types
+  in Haskell (a stepping stone toward generated coders, [#47](https://github.com/CategoricalData/hydra/issues/47)).
+
+---
+
+## [0.5.1] - 2024-08-01
+
+Patch release.
+Dependency updates and minor improvements following the 0.5.0 Hydra Core overhaul.
+
+### Improvements
+
+- Updated dependencies.
+
+---
+
+## [0.5.0] - 2024-07-26
+
+Untagged in-repository version.
+Major Hydra Core overhaul: eliminates polymorphic types in favor of explicit
+TypeScheme; consolidates the annotation system; revamps `Let` term encoding.
+
+### Breaking changes
+
+- Eliminated polymorphic types from Hydra Core in Haskell ([#125](https://github.com/CategoricalData/hydra/issues/125)):
+  removed type parameters from `hydra/core` types in Hydra-Java; replaced type schemes
+  with forall types ([#76](https://github.com/CategoricalData/hydra/issues/76)).
+- Revamped core encoding and `Let`: bindings are now a list of
+  `(name, term, optional type scheme)` triplets instead of a map.
+- Unified typed-term types and moved `TypeScheme` into Hydra Core.
+- Eliminated `AnnotationClass`; Hydra has a single built-in notion of annotations now ([#113](https://github.com/CategoricalData/hydra/issues/113)).
+- Renamed and refactored phantom-type wrappers ([#128](https://github.com/CategoricalData/hydra/issues/128)); removed deprecated `Reference`
+  type from `hydra/phantoms`.
+- Removed incomplete support for stream types and stream terms ([#88](https://github.com/CategoricalData/hydra/issues/88)).
+
+### New features
+
+- `LiteralTypes` DSL module so literals can be built independently of terms.
+- `Hydra.Minimal` module to facilitate collaboration on Hydra application prototypes.
+- `TypeConstraint` type added to the kernel.
+- `foldl` primitive in Haskell and Java; DSL uses `foldl` instead of the built-in
+  list elimination term by default.
+
+### Improvements
+
+- Improvements to Java and JSON coders; improved untyped JSON coder.
+- Pre-order and post-order term-traversal test cases added.
+- Refactored type inference tests.
+- Restored generated Java (Core through Tier 3) with only a few manual tweaks.
+- Element names allow arbitrary case ([#7](https://github.com/CategoricalData/hydra/issues/7)).
+
+---
+
+## [0.4.0] - 2024-07-10
+
+Untagged in-repository version.
+Adds null checks to generated Java (breaking, but justified — Hydra-Java disallows nulls),
+the Gremlin model, and Protobuf annotation refinements.
+
+### Breaking changes
+
+- Null checks added to constructors and `withXXX()` methods in generated Java;
+  null values are no longer permitted in Hydra-Java.
+- Removed Java 8 restriction (raised minimum Java version).
+
+### New features
+
+- Gremlin model ([#127](https://github.com/CategoricalData/hydra/issues/127)); generated Haskell for Gremlin.
+- `hydra/lib/lists.safeHead` primitive in Haskell (necessary in Java due to eager evaluation).
+- Support for Protobuf `deprecated=true` annotation; non-string Protobuf options.
+- Java options in generated Protobuf.
+
+### Improvements
+
+- Used `java.util.Objects.requireNonNull` instead of a custom null check in generated Java.
+- Added 'automatically generated file' disclaimer to generated Java files.
+- Added autogen comments and null checks to (most) generated Java.
+- Added necessary schema-level dependencies for built-in modules.
+- Added null checks to the Flows DSL in Java.
+
+---
+
+## [0.3.0] - 2024-06-05
+
+Untagged in-repository version.
+Adds an OpenCypher parser based on an ANTLR grammar ([#124](https://github.com/CategoricalData/hydra/issues/124)),
+a KQL (Kusto Query Language) model and serializer,
+a Delta Parquet model,
+and an early property graph queries model in the style of Cypher.
+
+### New features
+
+- OpenCypher parser based on the OpenCypher M23 ANTLR grammar ([#124](https://github.com/CategoricalData/hydra/issues/124));
+  ANTLR added as a build dependency;
+  large Cypher test suite drawn from the Cypher Manual.
+- Cypher-to-PG-query transformer (Java; partially implemented).
+- Property graph queries DSL and generated property graph query classes in Java.
+- Property graph queries model (Cypher / future GQL style).
+- KQL (Kusto Query Language) initial model and basic serializer.
+- Delta Parquet model with generated sources.
+
+### Improvements
+
+- Java options and `deprecated=true` support in generated Protobuf.
+- Convenience methods in Java.
+
+---
+
+## [0.2.0] - 2024-01-10
+
+Hydra-Java 0.2.0 release.
+Significant Java tooling and DSL build-out, Protobuf bidirectional coder,
+Python3 syntax model ([#80](https://github.com/CategoricalData/hydra/issues/80)), property graph validation ([#100](https://github.com/CategoricalData/hydra/issues/100)),
+JSON bidirectional support in Java ([#104](https://github.com/CategoricalData/hydra/issues/104)),
+OpenCypher initial model ([#108](https://github.com/CategoricalData/hydra/issues/108)),
+Cypher unification, and the start of the typed-DSL story in Haskell.
+
+### New features
+
+- Property graph validation: validator type, optionality on property types,
+  customizable id/property handling in the merging adapter, fine-tuned validation,
+  comprehensive unit tests in Java ([#100](https://github.com/CategoricalData/hydra/issues/100)).
+- Bidirectional JSON serialization/deserialization in Java ([#104](https://github.com/CategoricalData/hydra/issues/104)).
+- Checkstyle configuration based on Google style guide ([#111](https://github.com/CategoricalData/hydra/issues/111)).
+- Python3 syntax model based on the official Python BNF ([#80](https://github.com/CategoricalData/hydra/issues/80)).
+- Initial OpenCypher model and parser scaffold ([#108](https://github.com/CategoricalData/hydra/issues/108)).
+- Protobuf coder ([#99](https://github.com/CategoricalData/hydra/issues/99)): type encoder, field numbering, formatting, deprecated annotation,
+  Java options, non-string options.
+- Adapter framework tolerance of recursive types ([#58](https://github.com/CategoricalData/hydra/issues/58)); default branch for case
+  statements ([#60](https://github.com/CategoricalData/hydra/issues/60)).
+- Topological sort in type inference ([#67](https://github.com/CategoricalData/hydra/issues/67)).
+- `hydra/query` model ([#73](https://github.com/CategoricalData/hydra/issues/73)).
+- Records-to-TinkerPop-elements coder ([#64](https://github.com/CategoricalData/hydra/issues/64)).
+- Equality primitives for all literal types ([#92](https://github.com/CategoricalData/hydra/issues/92)); polymorphic logic primitives ([#95](https://github.com/CategoricalData/hydra/issues/95)).
+- `mapKeys` primitive ([#93](https://github.com/CategoricalData/hydra/issues/93)).
+- Tuple support in Java ([#94](https://github.com/CategoricalData/hydra/issues/94)).
+- Java 8 as an optional target ([#96](https://github.com/CategoricalData/hydra/issues/96)); optionally generate Java classes as `Serializable` ([#97](https://github.com/CategoricalData/hydra/issues/97)).
+- Bidirectional "merged vertex" and "merged edge" coders ([#106](https://github.com/CategoricalData/hydra/issues/106)).
+- Nullability and parameterization in the tabular model ([#107](https://github.com/CategoricalData/hydra/issues/107)).
+- Term-level / type-level dependency distinction for modules ([#109](https://github.com/CategoricalData/hydra/issues/109)).
+- Flatten nested `let` terms for transformation into Java ([#110](https://github.com/CategoricalData/hydra/issues/110)).
+- Various `Flow` utilities in Java: `bind3`; convenience methods for consuming results;
+  `fromFlow` variants including one that throws.
+
+### Improvements
+
+- Hydra-Java module ports ([#10](https://github.com/CategoricalData/hydra/issues/10), [#12](https://github.com/CategoricalData/hydra/issues/12), [#13](https://github.com/CategoricalData/hydra/issues/13), [#14](https://github.com/CategoricalData/hydra/issues/14), [#17](https://github.com/CategoricalData/hydra/issues/17), [#30](https://github.com/CategoricalData/hydra/issues/30), [#31](https://github.com/CategoricalData/hydra/issues/31), [#32](https://github.com/CategoricalData/hydra/issues/32), [#33](https://github.com/CategoricalData/hydra/issues/33), [#34](https://github.com/CategoricalData/hydra/issues/34), [#35](https://github.com/CategoricalData/hydra/issues/35),
+  [#38](https://github.com/CategoricalData/hydra/issues/38), [#39](https://github.com/CategoricalData/hydra/issues/39), [#41](https://github.com/CategoricalData/hydra/issues/41), [#43](https://github.com/CategoricalData/hydra/issues/43), [#48](https://github.com/CategoricalData/hydra/issues/48), [#71](https://github.com/CategoricalData/hydra/issues/71), [#72](https://github.com/CategoricalData/hydra/issues/72), [#75](https://github.com/CategoricalData/hydra/issues/75), [#83](https://github.com/CategoricalData/hydra/issues/83)):
+  `Common`, `CoreEncoding`, `CoreLanguage`, `Kernel`, `Flows`, `Lists`, `Literals`,
+  `Math`, `Sets`, `Strings`, `Optionals`, `Maps`, `Flows` primitives, `Sets` primitives.
+- Common DSLs in Haskell: Flow support ([#68](https://github.com/CategoricalData/hydra/issues/68)), Let support ([#69](https://github.com/CategoricalData/hydra/issues/69)).
+- Renamed annotation type parameter `m` to `a` ([#41](https://github.com/CategoricalData/hydra/issues/41)).
+- Updated wrapper, element, and variable types ([#75](https://github.com/CategoricalData/hydra/issues/75)).
+- Removed `schema` field from `Element` ([#83](https://github.com/CategoricalData/hydra/issues/83)).
+- GraphQL coder ([#78](https://github.com/CategoricalData/hydra/issues/78)).
+- Code quality:
+  - Updated main and test sources to conform to Checkstyle configuration ([#111](https://github.com/CategoricalData/hydra/issues/111)).
+  - Extended line-length limit from 100 to 120 characters.
+  - Disabled overly restrictive indentation and import-order rules.
+  - Disabled `RightCurlyAlone` for compact inline map definitions.
+- Streamlined property-graph element merging to unify properties with identical
+  keys and types ([#106](https://github.com/CategoricalData/hydra/issues/106)).
+- Convenience functions for printing literals and literal types in the Java DSL.
+- Minor addition to JSON decoding.
+- DSL convenience: alphabetic-case flexibility for element names ([#7](https://github.com/CategoricalData/hydra/issues/7)).
+
+### Bug fixes
+
+- Fixed type annotations for the Sets Java port ([#48](https://github.com/CategoricalData/hydra/issues/48)).
+- Various minor fixes during the Java module ports.
+
+---
+
+## [0.1.1] - 2022-12-04
+
+Patch release the same day as 0.1.0.
+README polish only.
+
+---
+
+## [0.1.0] - 2022-12-04
+
+First packaged release of Hydra (Hackage).
+This release contains the complete foundation of Hydra.
+
+### Core language
+
+- Hydra's core type and data languages (`hydra.core`).
+- Core models for graphs and modules.
+- Computation model with the `Flow` monad.
+- BNF grammars support.
+- Phantom types.
+- Basic operations on types and terms.
+
+### Type system
+
+- Hindley–Milner-style type inference.
+- Type schemes with polymorphism.
+- Type/term validation.
+
+### Transformations
+
+- Adapter system: type-to-type rewriting and transformation.
+- Coders:
+  Haskell coder (types and terms),
+  Java coder (types and terms),
+  partial Scala coder (terms only),
+  Avro coder,
+  JSON coder,
+  PDL (Pegasus Data Language) coder,
+  RDF + SHACL coder,
+  YAML coder.
+
+### Language support
+
+- Models for GraphQL, OWL (Web Ontology Language), ShEx (Shape Expressions),
+  and TinkerPop-style property graphs.
+
+### Developer tools
+
+- Type-construction DSL and term-construction DSL.
+- QuickCheck property-based tests.
+
+### Implementations
+
+- Hydra-Haskell: bootstrapping implementation with full kernel.
+- Hydra-Java: Java implementation with mature tooling.
+
+### Community
+
+- Set up the LambdaGraph Discord server ([#2](https://github.com/CategoricalData/hydra/issues/2)).
+
+---
+
+## Contributing
+
+We welcome contributions! Please see:
+
+- [Developer recipes](https://github.com/CategoricalData/hydra/tree/main/docs/recipes)
+- [LambdaGraph Discord](https://bit.ly/lg-discord)
+
+## Release process
+
+See the [Release policy](https://github.com/CategoricalData/hydra/wiki/Release-policy)
+wiki page and [docs/release-workflow.md](docs/release-workflow.md)
+for information on how Hydra releases are versioned, built, and published.
diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/NOTICE b/NOTICE
new file mode 100644
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,3 @@
+Hydra
+Copyright 2021-2026 The Hydra authors
+https://github.com/CategoricalData/hydra
diff --git a/hydra-bench.cabal b/hydra-bench.cabal
new file mode 100644
--- /dev/null
+++ b/hydra-bench.cabal
@@ -0,0 +1,41 @@
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.39.1.
+--
+-- see: https://github.com/sol/hpack
+
+name:           hydra-bench
+version:        0.17.0
+synopsis:       Hydra synthetic inference-benchmark workloads
+description:    Hydra is an implementation of the LambdaGraph data model, which takes advantage of an isomorphism between labeled hypergraphs and typed lambda calculus: in Hydra, "graphs are programs, and programs are graphs". Synthetic inference benchmark workloads for cross-host performance comparison. Not part of the standard sync; regenerate on demand via bin/sync-bench.sh.
+category:       Data
+homepage:       https://github.com/CategoricalData/hydra#readme
+bug-reports:    https://github.com/CategoricalData/hydra/issues
+author:         Joshua Shinavier <josh@fortytwo.net>
+maintainer:     Joshua Shinavier <josh@fortytwo.net>
+license:        Apache-2.0
+license-file:   LICENSE
+build-type:     Simple
+extra-source-files:
+    LICENSE
+    NOTICE
+    CHANGELOG.md
+
+source-repository head
+  type: git
+  location: https://github.com/CategoricalData/hydra
+
+library
+  exposed-modules:
+      Hydra.Bench.FanOut
+      Hydra.Bench.LinearChain
+      Hydra.Bench.PolymorphicChain
+  other-modules:
+      Paths_hydra_bench
+  hs-source-dirs:
+      src/main/haskell
+  build-depends:
+      base >=4.19.0 && <4.22
+    , hydra-kernel ==0.17.0
+    , scientific >=0.3.7 && <0.4
+  default-language: Haskell2010
diff --git a/src/main/haskell/Hydra/Bench/FanOut.hs b/src/main/haskell/Hydra/Bench/FanOut.hs
new file mode 100644
--- /dev/null
+++ b/src/main/haskell/Hydra/Bench/FanOut.hs
@@ -0,0 +1,7614 @@
+-- Note: this is an automatically generated file. Do not edit.
+-- | Fan-out inference benchmark. Each fanWalker_K branches to three smaller fanWalkers via _Term cases — closer to real codegen DAG shape than LinearChain.
+
+module Hydra.Bench.FanOut where
+import qualified Hydra.Ast as Ast
+import qualified Hydra.Coders as Coders
+import qualified Hydra.Core as Core
+import qualified Hydra.Error.Checking as Checking
+import qualified Hydra.Error.Core as ErrorCore
+import qualified Hydra.Error.Packaging as ErrorPackaging
+import qualified Hydra.Errors as Errors
+import qualified Hydra.Graph as Graph
+import qualified Hydra.Json.Model as Model
+import qualified Hydra.Overlay.Haskell.Lib.Optionals as Optionals
+import qualified Hydra.Packaging as Packaging
+import qualified Hydra.Parsing as Parsing
+import qualified Hydra.Paths as Paths
+import qualified Hydra.Query as Query
+import qualified Hydra.Relational as Relational
+import qualified Hydra.Strip as Strip
+import qualified Hydra.Tabular as Tabular
+import qualified Hydra.Testing as Testing
+import qualified Hydra.Topology as Topology
+import qualified Hydra.Typed as Typed
+import qualified Hydra.Typing as Typing
+import qualified Hydra.Util as Util
+import qualified Hydra.Validation as Validation
+import qualified Hydra.Variants as Variants
+import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
+import qualified Data.Scientific as Sci
+-- | Fan-out walker level 0; branches to fanWalker0, fanWalker0, fanWalker0.
+fanWalker0 :: t0 -> Maybe t0
+fanWalker0 t = Just t
+-- | Fan-out walker level 1; branches to fanWalker0, fanWalker0, fanWalker0.
+fanWalker1 :: Core.Term -> Maybe Core.Term
+fanWalker1 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker0 fun) (fanWalker0 arg) (\_ -> fanWalker0 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker0 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker0 body) Nothing (\inner -> fanWalker0 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 10; branches to fanWalker9, fanWalker5, fanWalker7.
+fanWalker10 :: Core.Term -> Maybe Core.Term
+fanWalker10 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker9 fun) (fanWalker9 arg) (\_ -> fanWalker9 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker5 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker7 body) Nothing (\inner -> fanWalker7 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 100; branches to fanWalker99, fanWalker50, fanWalker67.
+fanWalker100 :: Core.Term -> Maybe Core.Term
+fanWalker100 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker99 fun) (fanWalker99 arg) (\_ -> fanWalker99 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker50 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker67 body) Nothing (\inner -> fanWalker67 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 101; branches to fanWalker100, fanWalker51, fanWalker68.
+fanWalker101 :: Core.Term -> Maybe Core.Term
+fanWalker101 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker100 fun) (fanWalker100 arg) (\_ -> fanWalker100 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker51 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker68 body) Nothing (\inner -> fanWalker68 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 102; branches to fanWalker101, fanWalker51, fanWalker68.
+fanWalker102 :: Core.Term -> Maybe Core.Term
+fanWalker102 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker101 fun) (fanWalker101 arg) (\_ -> fanWalker101 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker51 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker68 body) Nothing (\inner -> fanWalker68 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 103; branches to fanWalker102, fanWalker52, fanWalker69.
+fanWalker103 :: Core.Term -> Maybe Core.Term
+fanWalker103 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker102 fun) (fanWalker102 arg) (\_ -> fanWalker102 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker52 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker69 body) Nothing (\inner -> fanWalker69 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 104; branches to fanWalker103, fanWalker52, fanWalker70.
+fanWalker104 :: Core.Term -> Maybe Core.Term
+fanWalker104 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker103 fun) (fanWalker103 arg) (\_ -> fanWalker103 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker52 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker70 body) Nothing (\inner -> fanWalker70 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 105; branches to fanWalker104, fanWalker53, fanWalker70.
+fanWalker105 :: Core.Term -> Maybe Core.Term
+fanWalker105 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker104 fun) (fanWalker104 arg) (\_ -> fanWalker104 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker53 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker70 body) Nothing (\inner -> fanWalker70 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 106; branches to fanWalker105, fanWalker53, fanWalker71.
+fanWalker106 :: Core.Term -> Maybe Core.Term
+fanWalker106 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker105 fun) (fanWalker105 arg) (\_ -> fanWalker105 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker53 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker71 body) Nothing (\inner -> fanWalker71 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 107; branches to fanWalker106, fanWalker54, fanWalker72.
+fanWalker107 :: Core.Term -> Maybe Core.Term
+fanWalker107 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker106 fun) (fanWalker106 arg) (\_ -> fanWalker106 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker54 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker72 body) Nothing (\inner -> fanWalker72 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 108; branches to fanWalker107, fanWalker54, fanWalker72.
+fanWalker108 :: Core.Term -> Maybe Core.Term
+fanWalker108 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker107 fun) (fanWalker107 arg) (\_ -> fanWalker107 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker54 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker72 body) Nothing (\inner -> fanWalker72 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 109; branches to fanWalker108, fanWalker55, fanWalker73.
+fanWalker109 :: Core.Term -> Maybe Core.Term
+fanWalker109 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker108 fun) (fanWalker108 arg) (\_ -> fanWalker108 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker55 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker73 body) Nothing (\inner -> fanWalker73 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 11; branches to fanWalker10, fanWalker6, fanWalker8.
+fanWalker11 :: Core.Term -> Maybe Core.Term
+fanWalker11 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker10 fun) (fanWalker10 arg) (\_ -> fanWalker10 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker6 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker8 body) Nothing (\inner -> fanWalker8 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 110; branches to fanWalker109, fanWalker55, fanWalker74.
+fanWalker110 :: Core.Term -> Maybe Core.Term
+fanWalker110 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker109 fun) (fanWalker109 arg) (\_ -> fanWalker109 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker55 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker74 body) Nothing (\inner -> fanWalker74 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 111; branches to fanWalker110, fanWalker56, fanWalker74.
+fanWalker111 :: Core.Term -> Maybe Core.Term
+fanWalker111 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker110 fun) (fanWalker110 arg) (\_ -> fanWalker110 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker56 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker74 body) Nothing (\inner -> fanWalker74 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 112; branches to fanWalker111, fanWalker56, fanWalker75.
+fanWalker112 :: Core.Term -> Maybe Core.Term
+fanWalker112 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker111 fun) (fanWalker111 arg) (\_ -> fanWalker111 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker56 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker75 body) Nothing (\inner -> fanWalker75 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 113; branches to fanWalker112, fanWalker57, fanWalker76.
+fanWalker113 :: Core.Term -> Maybe Core.Term
+fanWalker113 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker112 fun) (fanWalker112 arg) (\_ -> fanWalker112 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker57 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker76 body) Nothing (\inner -> fanWalker76 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 114; branches to fanWalker113, fanWalker57, fanWalker76.
+fanWalker114 :: Core.Term -> Maybe Core.Term
+fanWalker114 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker113 fun) (fanWalker113 arg) (\_ -> fanWalker113 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker57 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker76 body) Nothing (\inner -> fanWalker76 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 115; branches to fanWalker114, fanWalker58, fanWalker77.
+fanWalker115 :: Core.Term -> Maybe Core.Term
+fanWalker115 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker114 fun) (fanWalker114 arg) (\_ -> fanWalker114 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker58 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker77 body) Nothing (\inner -> fanWalker77 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 116; branches to fanWalker115, fanWalker58, fanWalker78.
+fanWalker116 :: Core.Term -> Maybe Core.Term
+fanWalker116 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker115 fun) (fanWalker115 arg) (\_ -> fanWalker115 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker58 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker78 body) Nothing (\inner -> fanWalker78 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 117; branches to fanWalker116, fanWalker59, fanWalker78.
+fanWalker117 :: Core.Term -> Maybe Core.Term
+fanWalker117 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker116 fun) (fanWalker116 arg) (\_ -> fanWalker116 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker59 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker78 body) Nothing (\inner -> fanWalker78 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 118; branches to fanWalker117, fanWalker59, fanWalker79.
+fanWalker118 :: Core.Term -> Maybe Core.Term
+fanWalker118 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker117 fun) (fanWalker117 arg) (\_ -> fanWalker117 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker59 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker79 body) Nothing (\inner -> fanWalker79 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 119; branches to fanWalker118, fanWalker60, fanWalker80.
+fanWalker119 :: Core.Term -> Maybe Core.Term
+fanWalker119 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker118 fun) (fanWalker118 arg) (\_ -> fanWalker118 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker60 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker80 body) Nothing (\inner -> fanWalker80 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 12; branches to fanWalker11, fanWalker6, fanWalker8.
+fanWalker12 :: Core.Term -> Maybe Core.Term
+fanWalker12 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker11 fun) (fanWalker11 arg) (\_ -> fanWalker11 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker6 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker8 body) Nothing (\inner -> fanWalker8 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 120; branches to fanWalker119, fanWalker60, fanWalker80.
+fanWalker120 :: Core.Term -> Maybe Core.Term
+fanWalker120 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker119 fun) (fanWalker119 arg) (\_ -> fanWalker119 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker60 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker80 body) Nothing (\inner -> fanWalker80 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 121; branches to fanWalker120, fanWalker61, fanWalker81.
+fanWalker121 :: Core.Term -> Maybe Core.Term
+fanWalker121 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker120 fun) (fanWalker120 arg) (\_ -> fanWalker120 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker61 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker81 body) Nothing (\inner -> fanWalker81 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 122; branches to fanWalker121, fanWalker61, fanWalker82.
+fanWalker122 :: Core.Term -> Maybe Core.Term
+fanWalker122 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker121 fun) (fanWalker121 arg) (\_ -> fanWalker121 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker61 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker82 body) Nothing (\inner -> fanWalker82 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 123; branches to fanWalker122, fanWalker62, fanWalker82.
+fanWalker123 :: Core.Term -> Maybe Core.Term
+fanWalker123 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker122 fun) (fanWalker122 arg) (\_ -> fanWalker122 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker62 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker82 body) Nothing (\inner -> fanWalker82 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 124; branches to fanWalker123, fanWalker62, fanWalker83.
+fanWalker124 :: Core.Term -> Maybe Core.Term
+fanWalker124 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker123 fun) (fanWalker123 arg) (\_ -> fanWalker123 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker62 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker83 body) Nothing (\inner -> fanWalker83 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 125; branches to fanWalker124, fanWalker63, fanWalker84.
+fanWalker125 :: Core.Term -> Maybe Core.Term
+fanWalker125 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker124 fun) (fanWalker124 arg) (\_ -> fanWalker124 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker63 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker84 body) Nothing (\inner -> fanWalker84 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 126; branches to fanWalker125, fanWalker63, fanWalker84.
+fanWalker126 :: Core.Term -> Maybe Core.Term
+fanWalker126 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker125 fun) (fanWalker125 arg) (\_ -> fanWalker125 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker63 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker84 body) Nothing (\inner -> fanWalker84 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 127; branches to fanWalker126, fanWalker64, fanWalker85.
+fanWalker127 :: Core.Term -> Maybe Core.Term
+fanWalker127 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker126 fun) (fanWalker126 arg) (\_ -> fanWalker126 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker64 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker85 body) Nothing (\inner -> fanWalker85 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 128; branches to fanWalker127, fanWalker64, fanWalker86.
+fanWalker128 :: Core.Term -> Maybe Core.Term
+fanWalker128 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker127 fun) (fanWalker127 arg) (\_ -> fanWalker127 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker64 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker86 body) Nothing (\inner -> fanWalker86 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 129; branches to fanWalker128, fanWalker65, fanWalker86.
+fanWalker129 :: Core.Term -> Maybe Core.Term
+fanWalker129 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker128 fun) (fanWalker128 arg) (\_ -> fanWalker128 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker65 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker86 body) Nothing (\inner -> fanWalker86 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 13; branches to fanWalker12, fanWalker7, fanWalker9.
+fanWalker13 :: Core.Term -> Maybe Core.Term
+fanWalker13 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker12 fun) (fanWalker12 arg) (\_ -> fanWalker12 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker7 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker9 body) Nothing (\inner -> fanWalker9 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 130; branches to fanWalker129, fanWalker65, fanWalker87.
+fanWalker130 :: Core.Term -> Maybe Core.Term
+fanWalker130 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker129 fun) (fanWalker129 arg) (\_ -> fanWalker129 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker65 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker87 body) Nothing (\inner -> fanWalker87 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 131; branches to fanWalker130, fanWalker66, fanWalker88.
+fanWalker131 :: Core.Term -> Maybe Core.Term
+fanWalker131 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker130 fun) (fanWalker130 arg) (\_ -> fanWalker130 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker66 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker88 body) Nothing (\inner -> fanWalker88 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 132; branches to fanWalker131, fanWalker66, fanWalker88.
+fanWalker132 :: Core.Term -> Maybe Core.Term
+fanWalker132 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker131 fun) (fanWalker131 arg) (\_ -> fanWalker131 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker66 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker88 body) Nothing (\inner -> fanWalker88 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 133; branches to fanWalker132, fanWalker67, fanWalker89.
+fanWalker133 :: Core.Term -> Maybe Core.Term
+fanWalker133 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker132 fun) (fanWalker132 arg) (\_ -> fanWalker132 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker67 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker89 body) Nothing (\inner -> fanWalker89 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 134; branches to fanWalker133, fanWalker67, fanWalker90.
+fanWalker134 :: Core.Term -> Maybe Core.Term
+fanWalker134 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker133 fun) (fanWalker133 arg) (\_ -> fanWalker133 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker67 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker90 body) Nothing (\inner -> fanWalker90 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 135; branches to fanWalker134, fanWalker68, fanWalker90.
+fanWalker135 :: Core.Term -> Maybe Core.Term
+fanWalker135 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker134 fun) (fanWalker134 arg) (\_ -> fanWalker134 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker68 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker90 body) Nothing (\inner -> fanWalker90 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 136; branches to fanWalker135, fanWalker68, fanWalker91.
+fanWalker136 :: Core.Term -> Maybe Core.Term
+fanWalker136 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker135 fun) (fanWalker135 arg) (\_ -> fanWalker135 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker68 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker91 body) Nothing (\inner -> fanWalker91 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 137; branches to fanWalker136, fanWalker69, fanWalker92.
+fanWalker137 :: Core.Term -> Maybe Core.Term
+fanWalker137 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker136 fun) (fanWalker136 arg) (\_ -> fanWalker136 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker69 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker92 body) Nothing (\inner -> fanWalker92 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 138; branches to fanWalker137, fanWalker69, fanWalker92.
+fanWalker138 :: Core.Term -> Maybe Core.Term
+fanWalker138 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker137 fun) (fanWalker137 arg) (\_ -> fanWalker137 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker69 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker92 body) Nothing (\inner -> fanWalker92 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 139; branches to fanWalker138, fanWalker70, fanWalker93.
+fanWalker139 :: Core.Term -> Maybe Core.Term
+fanWalker139 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker138 fun) (fanWalker138 arg) (\_ -> fanWalker138 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker70 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker93 body) Nothing (\inner -> fanWalker93 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 14; branches to fanWalker13, fanWalker7, fanWalker10.
+fanWalker14 :: Core.Term -> Maybe Core.Term
+fanWalker14 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker13 fun) (fanWalker13 arg) (\_ -> fanWalker13 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker7 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker10 body) Nothing (\inner -> fanWalker10 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 140; branches to fanWalker139, fanWalker70, fanWalker94.
+fanWalker140 :: Core.Term -> Maybe Core.Term
+fanWalker140 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker139 fun) (fanWalker139 arg) (\_ -> fanWalker139 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker70 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker94 body) Nothing (\inner -> fanWalker94 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 141; branches to fanWalker140, fanWalker71, fanWalker94.
+fanWalker141 :: Core.Term -> Maybe Core.Term
+fanWalker141 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker140 fun) (fanWalker140 arg) (\_ -> fanWalker140 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker71 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker94 body) Nothing (\inner -> fanWalker94 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 142; branches to fanWalker141, fanWalker71, fanWalker95.
+fanWalker142 :: Core.Term -> Maybe Core.Term
+fanWalker142 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker141 fun) (fanWalker141 arg) (\_ -> fanWalker141 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker71 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker95 body) Nothing (\inner -> fanWalker95 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 143; branches to fanWalker142, fanWalker72, fanWalker96.
+fanWalker143 :: Core.Term -> Maybe Core.Term
+fanWalker143 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker142 fun) (fanWalker142 arg) (\_ -> fanWalker142 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker72 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker96 body) Nothing (\inner -> fanWalker96 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 144; branches to fanWalker143, fanWalker72, fanWalker96.
+fanWalker144 :: Core.Term -> Maybe Core.Term
+fanWalker144 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker143 fun) (fanWalker143 arg) (\_ -> fanWalker143 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker72 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker96 body) Nothing (\inner -> fanWalker96 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 145; branches to fanWalker144, fanWalker73, fanWalker97.
+fanWalker145 :: Core.Term -> Maybe Core.Term
+fanWalker145 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker144 fun) (fanWalker144 arg) (\_ -> fanWalker144 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker73 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker97 body) Nothing (\inner -> fanWalker97 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 146; branches to fanWalker145, fanWalker73, fanWalker98.
+fanWalker146 :: Core.Term -> Maybe Core.Term
+fanWalker146 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker145 fun) (fanWalker145 arg) (\_ -> fanWalker145 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker73 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker98 body) Nothing (\inner -> fanWalker98 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 147; branches to fanWalker146, fanWalker74, fanWalker98.
+fanWalker147 :: Core.Term -> Maybe Core.Term
+fanWalker147 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker146 fun) (fanWalker146 arg) (\_ -> fanWalker146 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker74 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker98 body) Nothing (\inner -> fanWalker98 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 148; branches to fanWalker147, fanWalker74, fanWalker99.
+fanWalker148 :: Core.Term -> Maybe Core.Term
+fanWalker148 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker147 fun) (fanWalker147 arg) (\_ -> fanWalker147 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker74 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker99 body) Nothing (\inner -> fanWalker99 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 149; branches to fanWalker148, fanWalker75, fanWalker100.
+fanWalker149 :: Core.Term -> Maybe Core.Term
+fanWalker149 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker148 fun) (fanWalker148 arg) (\_ -> fanWalker148 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker75 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker100 body) Nothing (\inner -> fanWalker100 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 15; branches to fanWalker14, fanWalker8, fanWalker10.
+fanWalker15 :: Core.Term -> Maybe Core.Term
+fanWalker15 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker14 fun) (fanWalker14 arg) (\_ -> fanWalker14 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker8 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker10 body) Nothing (\inner -> fanWalker10 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 150; branches to fanWalker149, fanWalker75, fanWalker100.
+fanWalker150 :: Core.Term -> Maybe Core.Term
+fanWalker150 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker149 fun) (fanWalker149 arg) (\_ -> fanWalker149 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker75 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker100 body) Nothing (\inner -> fanWalker100 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 151; branches to fanWalker150, fanWalker76, fanWalker101.
+fanWalker151 :: Core.Term -> Maybe Core.Term
+fanWalker151 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker150 fun) (fanWalker150 arg) (\_ -> fanWalker150 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker76 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker101 body) Nothing (\inner -> fanWalker101 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 152; branches to fanWalker151, fanWalker76, fanWalker102.
+fanWalker152 :: Core.Term -> Maybe Core.Term
+fanWalker152 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker151 fun) (fanWalker151 arg) (\_ -> fanWalker151 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker76 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker102 body) Nothing (\inner -> fanWalker102 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 153; branches to fanWalker152, fanWalker77, fanWalker102.
+fanWalker153 :: Core.Term -> Maybe Core.Term
+fanWalker153 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker152 fun) (fanWalker152 arg) (\_ -> fanWalker152 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker77 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker102 body) Nothing (\inner -> fanWalker102 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 154; branches to fanWalker153, fanWalker77, fanWalker103.
+fanWalker154 :: Core.Term -> Maybe Core.Term
+fanWalker154 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker153 fun) (fanWalker153 arg) (\_ -> fanWalker153 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker77 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker103 body) Nothing (\inner -> fanWalker103 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 155; branches to fanWalker154, fanWalker78, fanWalker104.
+fanWalker155 :: Core.Term -> Maybe Core.Term
+fanWalker155 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker154 fun) (fanWalker154 arg) (\_ -> fanWalker154 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker78 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker104 body) Nothing (\inner -> fanWalker104 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 156; branches to fanWalker155, fanWalker78, fanWalker104.
+fanWalker156 :: Core.Term -> Maybe Core.Term
+fanWalker156 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker155 fun) (fanWalker155 arg) (\_ -> fanWalker155 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker78 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker104 body) Nothing (\inner -> fanWalker104 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 157; branches to fanWalker156, fanWalker79, fanWalker105.
+fanWalker157 :: Core.Term -> Maybe Core.Term
+fanWalker157 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker156 fun) (fanWalker156 arg) (\_ -> fanWalker156 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker79 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker105 body) Nothing (\inner -> fanWalker105 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 158; branches to fanWalker157, fanWalker79, fanWalker106.
+fanWalker158 :: Core.Term -> Maybe Core.Term
+fanWalker158 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker157 fun) (fanWalker157 arg) (\_ -> fanWalker157 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker79 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker106 body) Nothing (\inner -> fanWalker106 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 159; branches to fanWalker158, fanWalker80, fanWalker106.
+fanWalker159 :: Core.Term -> Maybe Core.Term
+fanWalker159 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker158 fun) (fanWalker158 arg) (\_ -> fanWalker158 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker80 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker106 body) Nothing (\inner -> fanWalker106 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 16; branches to fanWalker15, fanWalker8, fanWalker11.
+fanWalker16 :: Core.Term -> Maybe Core.Term
+fanWalker16 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker15 fun) (fanWalker15 arg) (\_ -> fanWalker15 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker8 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker11 body) Nothing (\inner -> fanWalker11 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 160; branches to fanWalker159, fanWalker80, fanWalker107.
+fanWalker160 :: Core.Term -> Maybe Core.Term
+fanWalker160 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker159 fun) (fanWalker159 arg) (\_ -> fanWalker159 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker80 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker107 body) Nothing (\inner -> fanWalker107 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 161; branches to fanWalker160, fanWalker81, fanWalker108.
+fanWalker161 :: Core.Term -> Maybe Core.Term
+fanWalker161 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker160 fun) (fanWalker160 arg) (\_ -> fanWalker160 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker81 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker108 body) Nothing (\inner -> fanWalker108 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 162; branches to fanWalker161, fanWalker81, fanWalker108.
+fanWalker162 :: Core.Term -> Maybe Core.Term
+fanWalker162 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker161 fun) (fanWalker161 arg) (\_ -> fanWalker161 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker81 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker108 body) Nothing (\inner -> fanWalker108 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 163; branches to fanWalker162, fanWalker82, fanWalker109.
+fanWalker163 :: Core.Term -> Maybe Core.Term
+fanWalker163 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker162 fun) (fanWalker162 arg) (\_ -> fanWalker162 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker82 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker109 body) Nothing (\inner -> fanWalker109 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 164; branches to fanWalker163, fanWalker82, fanWalker110.
+fanWalker164 :: Core.Term -> Maybe Core.Term
+fanWalker164 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker163 fun) (fanWalker163 arg) (\_ -> fanWalker163 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker82 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker110 body) Nothing (\inner -> fanWalker110 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 165; branches to fanWalker164, fanWalker83, fanWalker110.
+fanWalker165 :: Core.Term -> Maybe Core.Term
+fanWalker165 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker164 fun) (fanWalker164 arg) (\_ -> fanWalker164 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker83 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker110 body) Nothing (\inner -> fanWalker110 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 166; branches to fanWalker165, fanWalker83, fanWalker111.
+fanWalker166 :: Core.Term -> Maybe Core.Term
+fanWalker166 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker165 fun) (fanWalker165 arg) (\_ -> fanWalker165 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker83 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker111 body) Nothing (\inner -> fanWalker111 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 167; branches to fanWalker166, fanWalker84, fanWalker112.
+fanWalker167 :: Core.Term -> Maybe Core.Term
+fanWalker167 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker166 fun) (fanWalker166 arg) (\_ -> fanWalker166 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker84 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker112 body) Nothing (\inner -> fanWalker112 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 168; branches to fanWalker167, fanWalker84, fanWalker112.
+fanWalker168 :: Core.Term -> Maybe Core.Term
+fanWalker168 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker167 fun) (fanWalker167 arg) (\_ -> fanWalker167 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker84 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker112 body) Nothing (\inner -> fanWalker112 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 169; branches to fanWalker168, fanWalker85, fanWalker113.
+fanWalker169 :: Core.Term -> Maybe Core.Term
+fanWalker169 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker168 fun) (fanWalker168 arg) (\_ -> fanWalker168 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker85 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker113 body) Nothing (\inner -> fanWalker113 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 17; branches to fanWalker16, fanWalker9, fanWalker12.
+fanWalker17 :: Core.Term -> Maybe Core.Term
+fanWalker17 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker16 fun) (fanWalker16 arg) (\_ -> fanWalker16 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker9 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker12 body) Nothing (\inner -> fanWalker12 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 170; branches to fanWalker169, fanWalker85, fanWalker114.
+fanWalker170 :: Core.Term -> Maybe Core.Term
+fanWalker170 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker169 fun) (fanWalker169 arg) (\_ -> fanWalker169 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker85 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker114 body) Nothing (\inner -> fanWalker114 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 171; branches to fanWalker170, fanWalker86, fanWalker114.
+fanWalker171 :: Core.Term -> Maybe Core.Term
+fanWalker171 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker170 fun) (fanWalker170 arg) (\_ -> fanWalker170 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker86 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker114 body) Nothing (\inner -> fanWalker114 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 172; branches to fanWalker171, fanWalker86, fanWalker115.
+fanWalker172 :: Core.Term -> Maybe Core.Term
+fanWalker172 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker171 fun) (fanWalker171 arg) (\_ -> fanWalker171 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker86 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker115 body) Nothing (\inner -> fanWalker115 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 173; branches to fanWalker172, fanWalker87, fanWalker116.
+fanWalker173 :: Core.Term -> Maybe Core.Term
+fanWalker173 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker172 fun) (fanWalker172 arg) (\_ -> fanWalker172 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker87 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker116 body) Nothing (\inner -> fanWalker116 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 174; branches to fanWalker173, fanWalker87, fanWalker116.
+fanWalker174 :: Core.Term -> Maybe Core.Term
+fanWalker174 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker173 fun) (fanWalker173 arg) (\_ -> fanWalker173 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker87 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker116 body) Nothing (\inner -> fanWalker116 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 175; branches to fanWalker174, fanWalker88, fanWalker117.
+fanWalker175 :: Core.Term -> Maybe Core.Term
+fanWalker175 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker174 fun) (fanWalker174 arg) (\_ -> fanWalker174 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker88 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker117 body) Nothing (\inner -> fanWalker117 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 176; branches to fanWalker175, fanWalker88, fanWalker118.
+fanWalker176 :: Core.Term -> Maybe Core.Term
+fanWalker176 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker175 fun) (fanWalker175 arg) (\_ -> fanWalker175 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker88 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker118 body) Nothing (\inner -> fanWalker118 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 177; branches to fanWalker176, fanWalker89, fanWalker118.
+fanWalker177 :: Core.Term -> Maybe Core.Term
+fanWalker177 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker176 fun) (fanWalker176 arg) (\_ -> fanWalker176 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker89 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker118 body) Nothing (\inner -> fanWalker118 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 178; branches to fanWalker177, fanWalker89, fanWalker119.
+fanWalker178 :: Core.Term -> Maybe Core.Term
+fanWalker178 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker177 fun) (fanWalker177 arg) (\_ -> fanWalker177 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker89 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker119 body) Nothing (\inner -> fanWalker119 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 179; branches to fanWalker178, fanWalker90, fanWalker120.
+fanWalker179 :: Core.Term -> Maybe Core.Term
+fanWalker179 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker178 fun) (fanWalker178 arg) (\_ -> fanWalker178 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker90 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker120 body) Nothing (\inner -> fanWalker120 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 18; branches to fanWalker17, fanWalker9, fanWalker12.
+fanWalker18 :: Core.Term -> Maybe Core.Term
+fanWalker18 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker17 fun) (fanWalker17 arg) (\_ -> fanWalker17 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker9 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker12 body) Nothing (\inner -> fanWalker12 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 180; branches to fanWalker179, fanWalker90, fanWalker120.
+fanWalker180 :: Core.Term -> Maybe Core.Term
+fanWalker180 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker179 fun) (fanWalker179 arg) (\_ -> fanWalker179 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker90 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker120 body) Nothing (\inner -> fanWalker120 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 181; branches to fanWalker180, fanWalker91, fanWalker121.
+fanWalker181 :: Core.Term -> Maybe Core.Term
+fanWalker181 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker180 fun) (fanWalker180 arg) (\_ -> fanWalker180 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker91 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker121 body) Nothing (\inner -> fanWalker121 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 182; branches to fanWalker181, fanWalker91, fanWalker122.
+fanWalker182 :: Core.Term -> Maybe Core.Term
+fanWalker182 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker181 fun) (fanWalker181 arg) (\_ -> fanWalker181 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker91 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker122 body) Nothing (\inner -> fanWalker122 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 183; branches to fanWalker182, fanWalker92, fanWalker122.
+fanWalker183 :: Core.Term -> Maybe Core.Term
+fanWalker183 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker182 fun) (fanWalker182 arg) (\_ -> fanWalker182 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker92 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker122 body) Nothing (\inner -> fanWalker122 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 184; branches to fanWalker183, fanWalker92, fanWalker123.
+fanWalker184 :: Core.Term -> Maybe Core.Term
+fanWalker184 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker183 fun) (fanWalker183 arg) (\_ -> fanWalker183 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker92 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker123 body) Nothing (\inner -> fanWalker123 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 185; branches to fanWalker184, fanWalker93, fanWalker124.
+fanWalker185 :: Core.Term -> Maybe Core.Term
+fanWalker185 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker184 fun) (fanWalker184 arg) (\_ -> fanWalker184 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker93 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker124 body) Nothing (\inner -> fanWalker124 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 186; branches to fanWalker185, fanWalker93, fanWalker124.
+fanWalker186 :: Core.Term -> Maybe Core.Term
+fanWalker186 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker185 fun) (fanWalker185 arg) (\_ -> fanWalker185 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker93 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker124 body) Nothing (\inner -> fanWalker124 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 187; branches to fanWalker186, fanWalker94, fanWalker125.
+fanWalker187 :: Core.Term -> Maybe Core.Term
+fanWalker187 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker186 fun) (fanWalker186 arg) (\_ -> fanWalker186 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker94 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker125 body) Nothing (\inner -> fanWalker125 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 188; branches to fanWalker187, fanWalker94, fanWalker126.
+fanWalker188 :: Core.Term -> Maybe Core.Term
+fanWalker188 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker187 fun) (fanWalker187 arg) (\_ -> fanWalker187 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker94 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker126 body) Nothing (\inner -> fanWalker126 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 189; branches to fanWalker188, fanWalker95, fanWalker126.
+fanWalker189 :: Core.Term -> Maybe Core.Term
+fanWalker189 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker188 fun) (fanWalker188 arg) (\_ -> fanWalker188 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker95 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker126 body) Nothing (\inner -> fanWalker126 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 19; branches to fanWalker18, fanWalker10, fanWalker13.
+fanWalker19 :: Core.Term -> Maybe Core.Term
+fanWalker19 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker18 fun) (fanWalker18 arg) (\_ -> fanWalker18 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker10 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker13 body) Nothing (\inner -> fanWalker13 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 190; branches to fanWalker189, fanWalker95, fanWalker127.
+fanWalker190 :: Core.Term -> Maybe Core.Term
+fanWalker190 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker189 fun) (fanWalker189 arg) (\_ -> fanWalker189 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker95 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker127 body) Nothing (\inner -> fanWalker127 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 191; branches to fanWalker190, fanWalker96, fanWalker128.
+fanWalker191 :: Core.Term -> Maybe Core.Term
+fanWalker191 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker190 fun) (fanWalker190 arg) (\_ -> fanWalker190 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker96 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker128 body) Nothing (\inner -> fanWalker128 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 192; branches to fanWalker191, fanWalker96, fanWalker128.
+fanWalker192 :: Core.Term -> Maybe Core.Term
+fanWalker192 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker191 fun) (fanWalker191 arg) (\_ -> fanWalker191 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker96 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker128 body) Nothing (\inner -> fanWalker128 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 193; branches to fanWalker192, fanWalker97, fanWalker129.
+fanWalker193 :: Core.Term -> Maybe Core.Term
+fanWalker193 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker192 fun) (fanWalker192 arg) (\_ -> fanWalker192 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker97 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker129 body) Nothing (\inner -> fanWalker129 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 194; branches to fanWalker193, fanWalker97, fanWalker130.
+fanWalker194 :: Core.Term -> Maybe Core.Term
+fanWalker194 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker193 fun) (fanWalker193 arg) (\_ -> fanWalker193 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker97 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker130 body) Nothing (\inner -> fanWalker130 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 195; branches to fanWalker194, fanWalker98, fanWalker130.
+fanWalker195 :: Core.Term -> Maybe Core.Term
+fanWalker195 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker194 fun) (fanWalker194 arg) (\_ -> fanWalker194 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker98 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker130 body) Nothing (\inner -> fanWalker130 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 196; branches to fanWalker195, fanWalker98, fanWalker131.
+fanWalker196 :: Core.Term -> Maybe Core.Term
+fanWalker196 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker195 fun) (fanWalker195 arg) (\_ -> fanWalker195 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker98 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker131 body) Nothing (\inner -> fanWalker131 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 197; branches to fanWalker196, fanWalker99, fanWalker132.
+fanWalker197 :: Core.Term -> Maybe Core.Term
+fanWalker197 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker196 fun) (fanWalker196 arg) (\_ -> fanWalker196 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker99 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker132 body) Nothing (\inner -> fanWalker132 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 198; branches to fanWalker197, fanWalker99, fanWalker132.
+fanWalker198 :: Core.Term -> Maybe Core.Term
+fanWalker198 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker197 fun) (fanWalker197 arg) (\_ -> fanWalker197 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker99 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker132 body) Nothing (\inner -> fanWalker132 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 199; branches to fanWalker198, fanWalker100, fanWalker133.
+fanWalker199 :: Core.Term -> Maybe Core.Term
+fanWalker199 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker198 fun) (fanWalker198 arg) (\_ -> fanWalker198 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker100 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker133 body) Nothing (\inner -> fanWalker133 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 2; branches to fanWalker1, fanWalker1, fanWalker1.
+fanWalker2 :: Core.Term -> Maybe Core.Term
+fanWalker2 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker1 fun) (fanWalker1 arg) (\_ -> fanWalker1 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker1 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker1 body) Nothing (\inner -> fanWalker1 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 20; branches to fanWalker19, fanWalker10, fanWalker14.
+fanWalker20 :: Core.Term -> Maybe Core.Term
+fanWalker20 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker19 fun) (fanWalker19 arg) (\_ -> fanWalker19 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker10 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker14 body) Nothing (\inner -> fanWalker14 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 200; branches to fanWalker199, fanWalker100, fanWalker134.
+fanWalker200 :: Core.Term -> Maybe Core.Term
+fanWalker200 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker199 fun) (fanWalker199 arg) (\_ -> fanWalker199 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker100 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker134 body) Nothing (\inner -> fanWalker134 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 201; branches to fanWalker200, fanWalker101, fanWalker134.
+fanWalker201 :: Core.Term -> Maybe Core.Term
+fanWalker201 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker200 fun) (fanWalker200 arg) (\_ -> fanWalker200 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker101 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker134 body) Nothing (\inner -> fanWalker134 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 202; branches to fanWalker201, fanWalker101, fanWalker135.
+fanWalker202 :: Core.Term -> Maybe Core.Term
+fanWalker202 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker201 fun) (fanWalker201 arg) (\_ -> fanWalker201 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker101 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker135 body) Nothing (\inner -> fanWalker135 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 203; branches to fanWalker202, fanWalker102, fanWalker136.
+fanWalker203 :: Core.Term -> Maybe Core.Term
+fanWalker203 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker202 fun) (fanWalker202 arg) (\_ -> fanWalker202 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker102 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker136 body) Nothing (\inner -> fanWalker136 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 204; branches to fanWalker203, fanWalker102, fanWalker136.
+fanWalker204 :: Core.Term -> Maybe Core.Term
+fanWalker204 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker203 fun) (fanWalker203 arg) (\_ -> fanWalker203 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker102 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker136 body) Nothing (\inner -> fanWalker136 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 205; branches to fanWalker204, fanWalker103, fanWalker137.
+fanWalker205 :: Core.Term -> Maybe Core.Term
+fanWalker205 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker204 fun) (fanWalker204 arg) (\_ -> fanWalker204 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker103 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker137 body) Nothing (\inner -> fanWalker137 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 206; branches to fanWalker205, fanWalker103, fanWalker138.
+fanWalker206 :: Core.Term -> Maybe Core.Term
+fanWalker206 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker205 fun) (fanWalker205 arg) (\_ -> fanWalker205 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker103 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker138 body) Nothing (\inner -> fanWalker138 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 207; branches to fanWalker206, fanWalker104, fanWalker138.
+fanWalker207 :: Core.Term -> Maybe Core.Term
+fanWalker207 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker206 fun) (fanWalker206 arg) (\_ -> fanWalker206 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker104 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker138 body) Nothing (\inner -> fanWalker138 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 208; branches to fanWalker207, fanWalker104, fanWalker139.
+fanWalker208 :: Core.Term -> Maybe Core.Term
+fanWalker208 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker207 fun) (fanWalker207 arg) (\_ -> fanWalker207 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker104 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker139 body) Nothing (\inner -> fanWalker139 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 209; branches to fanWalker208, fanWalker105, fanWalker140.
+fanWalker209 :: Core.Term -> Maybe Core.Term
+fanWalker209 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker208 fun) (fanWalker208 arg) (\_ -> fanWalker208 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker105 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker140 body) Nothing (\inner -> fanWalker140 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 21; branches to fanWalker20, fanWalker11, fanWalker14.
+fanWalker21 :: Core.Term -> Maybe Core.Term
+fanWalker21 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker20 fun) (fanWalker20 arg) (\_ -> fanWalker20 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker11 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker14 body) Nothing (\inner -> fanWalker14 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 210; branches to fanWalker209, fanWalker105, fanWalker140.
+fanWalker210 :: Core.Term -> Maybe Core.Term
+fanWalker210 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker209 fun) (fanWalker209 arg) (\_ -> fanWalker209 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker105 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker140 body) Nothing (\inner -> fanWalker140 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 211; branches to fanWalker210, fanWalker106, fanWalker141.
+fanWalker211 :: Core.Term -> Maybe Core.Term
+fanWalker211 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker210 fun) (fanWalker210 arg) (\_ -> fanWalker210 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker106 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker141 body) Nothing (\inner -> fanWalker141 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 212; branches to fanWalker211, fanWalker106, fanWalker142.
+fanWalker212 :: Core.Term -> Maybe Core.Term
+fanWalker212 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker211 fun) (fanWalker211 arg) (\_ -> fanWalker211 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker106 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker142 body) Nothing (\inner -> fanWalker142 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 213; branches to fanWalker212, fanWalker107, fanWalker142.
+fanWalker213 :: Core.Term -> Maybe Core.Term
+fanWalker213 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker212 fun) (fanWalker212 arg) (\_ -> fanWalker212 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker107 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker142 body) Nothing (\inner -> fanWalker142 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 214; branches to fanWalker213, fanWalker107, fanWalker143.
+fanWalker214 :: Core.Term -> Maybe Core.Term
+fanWalker214 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker213 fun) (fanWalker213 arg) (\_ -> fanWalker213 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker107 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker143 body) Nothing (\inner -> fanWalker143 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 215; branches to fanWalker214, fanWalker108, fanWalker144.
+fanWalker215 :: Core.Term -> Maybe Core.Term
+fanWalker215 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker214 fun) (fanWalker214 arg) (\_ -> fanWalker214 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker108 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker144 body) Nothing (\inner -> fanWalker144 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 216; branches to fanWalker215, fanWalker108, fanWalker144.
+fanWalker216 :: Core.Term -> Maybe Core.Term
+fanWalker216 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker215 fun) (fanWalker215 arg) (\_ -> fanWalker215 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker108 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker144 body) Nothing (\inner -> fanWalker144 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 217; branches to fanWalker216, fanWalker109, fanWalker145.
+fanWalker217 :: Core.Term -> Maybe Core.Term
+fanWalker217 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker216 fun) (fanWalker216 arg) (\_ -> fanWalker216 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker109 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker145 body) Nothing (\inner -> fanWalker145 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 218; branches to fanWalker217, fanWalker109, fanWalker146.
+fanWalker218 :: Core.Term -> Maybe Core.Term
+fanWalker218 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker217 fun) (fanWalker217 arg) (\_ -> fanWalker217 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker109 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker146 body) Nothing (\inner -> fanWalker146 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 219; branches to fanWalker218, fanWalker110, fanWalker146.
+fanWalker219 :: Core.Term -> Maybe Core.Term
+fanWalker219 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker218 fun) (fanWalker218 arg) (\_ -> fanWalker218 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker110 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker146 body) Nothing (\inner -> fanWalker146 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 22; branches to fanWalker21, fanWalker11, fanWalker15.
+fanWalker22 :: Core.Term -> Maybe Core.Term
+fanWalker22 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker21 fun) (fanWalker21 arg) (\_ -> fanWalker21 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker11 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker15 body) Nothing (\inner -> fanWalker15 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 220; branches to fanWalker219, fanWalker110, fanWalker147.
+fanWalker220 :: Core.Term -> Maybe Core.Term
+fanWalker220 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker219 fun) (fanWalker219 arg) (\_ -> fanWalker219 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker110 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker147 body) Nothing (\inner -> fanWalker147 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 221; branches to fanWalker220, fanWalker111, fanWalker148.
+fanWalker221 :: Core.Term -> Maybe Core.Term
+fanWalker221 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker220 fun) (fanWalker220 arg) (\_ -> fanWalker220 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker111 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker148 body) Nothing (\inner -> fanWalker148 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 222; branches to fanWalker221, fanWalker111, fanWalker148.
+fanWalker222 :: Core.Term -> Maybe Core.Term
+fanWalker222 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker221 fun) (fanWalker221 arg) (\_ -> fanWalker221 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker111 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker148 body) Nothing (\inner -> fanWalker148 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 223; branches to fanWalker222, fanWalker112, fanWalker149.
+fanWalker223 :: Core.Term -> Maybe Core.Term
+fanWalker223 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker222 fun) (fanWalker222 arg) (\_ -> fanWalker222 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker112 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker149 body) Nothing (\inner -> fanWalker149 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 224; branches to fanWalker223, fanWalker112, fanWalker150.
+fanWalker224 :: Core.Term -> Maybe Core.Term
+fanWalker224 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker223 fun) (fanWalker223 arg) (\_ -> fanWalker223 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker112 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker150 body) Nothing (\inner -> fanWalker150 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 225; branches to fanWalker224, fanWalker113, fanWalker150.
+fanWalker225 :: Core.Term -> Maybe Core.Term
+fanWalker225 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker224 fun) (fanWalker224 arg) (\_ -> fanWalker224 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker113 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker150 body) Nothing (\inner -> fanWalker150 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 226; branches to fanWalker225, fanWalker113, fanWalker151.
+fanWalker226 :: Core.Term -> Maybe Core.Term
+fanWalker226 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker225 fun) (fanWalker225 arg) (\_ -> fanWalker225 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker113 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker151 body) Nothing (\inner -> fanWalker151 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 227; branches to fanWalker226, fanWalker114, fanWalker152.
+fanWalker227 :: Core.Term -> Maybe Core.Term
+fanWalker227 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker226 fun) (fanWalker226 arg) (\_ -> fanWalker226 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker114 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker152 body) Nothing (\inner -> fanWalker152 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 228; branches to fanWalker227, fanWalker114, fanWalker152.
+fanWalker228 :: Core.Term -> Maybe Core.Term
+fanWalker228 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker227 fun) (fanWalker227 arg) (\_ -> fanWalker227 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker114 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker152 body) Nothing (\inner -> fanWalker152 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 229; branches to fanWalker228, fanWalker115, fanWalker153.
+fanWalker229 :: Core.Term -> Maybe Core.Term
+fanWalker229 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker228 fun) (fanWalker228 arg) (\_ -> fanWalker228 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker115 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker153 body) Nothing (\inner -> fanWalker153 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 23; branches to fanWalker22, fanWalker12, fanWalker16.
+fanWalker23 :: Core.Term -> Maybe Core.Term
+fanWalker23 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker22 fun) (fanWalker22 arg) (\_ -> fanWalker22 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker12 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker16 body) Nothing (\inner -> fanWalker16 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 230; branches to fanWalker229, fanWalker115, fanWalker154.
+fanWalker230 :: Core.Term -> Maybe Core.Term
+fanWalker230 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker229 fun) (fanWalker229 arg) (\_ -> fanWalker229 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker115 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker154 body) Nothing (\inner -> fanWalker154 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 231; branches to fanWalker230, fanWalker116, fanWalker154.
+fanWalker231 :: Core.Term -> Maybe Core.Term
+fanWalker231 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker230 fun) (fanWalker230 arg) (\_ -> fanWalker230 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker116 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker154 body) Nothing (\inner -> fanWalker154 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 232; branches to fanWalker231, fanWalker116, fanWalker155.
+fanWalker232 :: Core.Term -> Maybe Core.Term
+fanWalker232 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker231 fun) (fanWalker231 arg) (\_ -> fanWalker231 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker116 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker155 body) Nothing (\inner -> fanWalker155 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 233; branches to fanWalker232, fanWalker117, fanWalker156.
+fanWalker233 :: Core.Term -> Maybe Core.Term
+fanWalker233 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker232 fun) (fanWalker232 arg) (\_ -> fanWalker232 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker117 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker156 body) Nothing (\inner -> fanWalker156 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 234; branches to fanWalker233, fanWalker117, fanWalker156.
+fanWalker234 :: Core.Term -> Maybe Core.Term
+fanWalker234 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker233 fun) (fanWalker233 arg) (\_ -> fanWalker233 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker117 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker156 body) Nothing (\inner -> fanWalker156 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 235; branches to fanWalker234, fanWalker118, fanWalker157.
+fanWalker235 :: Core.Term -> Maybe Core.Term
+fanWalker235 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker234 fun) (fanWalker234 arg) (\_ -> fanWalker234 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker118 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker157 body) Nothing (\inner -> fanWalker157 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 236; branches to fanWalker235, fanWalker118, fanWalker158.
+fanWalker236 :: Core.Term -> Maybe Core.Term
+fanWalker236 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker235 fun) (fanWalker235 arg) (\_ -> fanWalker235 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker118 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker158 body) Nothing (\inner -> fanWalker158 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 237; branches to fanWalker236, fanWalker119, fanWalker158.
+fanWalker237 :: Core.Term -> Maybe Core.Term
+fanWalker237 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker236 fun) (fanWalker236 arg) (\_ -> fanWalker236 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker119 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker158 body) Nothing (\inner -> fanWalker158 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 238; branches to fanWalker237, fanWalker119, fanWalker159.
+fanWalker238 :: Core.Term -> Maybe Core.Term
+fanWalker238 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker237 fun) (fanWalker237 arg) (\_ -> fanWalker237 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker119 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker159 body) Nothing (\inner -> fanWalker159 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 239; branches to fanWalker238, fanWalker120, fanWalker160.
+fanWalker239 :: Core.Term -> Maybe Core.Term
+fanWalker239 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker238 fun) (fanWalker238 arg) (\_ -> fanWalker238 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker120 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker160 body) Nothing (\inner -> fanWalker160 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 24; branches to fanWalker23, fanWalker12, fanWalker16.
+fanWalker24 :: Core.Term -> Maybe Core.Term
+fanWalker24 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker23 fun) (fanWalker23 arg) (\_ -> fanWalker23 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker12 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker16 body) Nothing (\inner -> fanWalker16 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 240; branches to fanWalker239, fanWalker120, fanWalker160.
+fanWalker240 :: Core.Term -> Maybe Core.Term
+fanWalker240 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker239 fun) (fanWalker239 arg) (\_ -> fanWalker239 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker120 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker160 body) Nothing (\inner -> fanWalker160 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 241; branches to fanWalker240, fanWalker121, fanWalker161.
+fanWalker241 :: Core.Term -> Maybe Core.Term
+fanWalker241 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker240 fun) (fanWalker240 arg) (\_ -> fanWalker240 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker121 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker161 body) Nothing (\inner -> fanWalker161 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 242; branches to fanWalker241, fanWalker121, fanWalker162.
+fanWalker242 :: Core.Term -> Maybe Core.Term
+fanWalker242 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker241 fun) (fanWalker241 arg) (\_ -> fanWalker241 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker121 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker162 body) Nothing (\inner -> fanWalker162 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 243; branches to fanWalker242, fanWalker122, fanWalker162.
+fanWalker243 :: Core.Term -> Maybe Core.Term
+fanWalker243 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker242 fun) (fanWalker242 arg) (\_ -> fanWalker242 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker122 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker162 body) Nothing (\inner -> fanWalker162 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 244; branches to fanWalker243, fanWalker122, fanWalker163.
+fanWalker244 :: Core.Term -> Maybe Core.Term
+fanWalker244 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker243 fun) (fanWalker243 arg) (\_ -> fanWalker243 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker122 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker163 body) Nothing (\inner -> fanWalker163 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 245; branches to fanWalker244, fanWalker123, fanWalker164.
+fanWalker245 :: Core.Term -> Maybe Core.Term
+fanWalker245 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker244 fun) (fanWalker244 arg) (\_ -> fanWalker244 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker123 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker164 body) Nothing (\inner -> fanWalker164 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 246; branches to fanWalker245, fanWalker123, fanWalker164.
+fanWalker246 :: Core.Term -> Maybe Core.Term
+fanWalker246 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker245 fun) (fanWalker245 arg) (\_ -> fanWalker245 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker123 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker164 body) Nothing (\inner -> fanWalker164 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 247; branches to fanWalker246, fanWalker124, fanWalker165.
+fanWalker247 :: Core.Term -> Maybe Core.Term
+fanWalker247 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker246 fun) (fanWalker246 arg) (\_ -> fanWalker246 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker124 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker165 body) Nothing (\inner -> fanWalker165 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 248; branches to fanWalker247, fanWalker124, fanWalker166.
+fanWalker248 :: Core.Term -> Maybe Core.Term
+fanWalker248 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker247 fun) (fanWalker247 arg) (\_ -> fanWalker247 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker124 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker166 body) Nothing (\inner -> fanWalker166 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 249; branches to fanWalker248, fanWalker125, fanWalker166.
+fanWalker249 :: Core.Term -> Maybe Core.Term
+fanWalker249 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker248 fun) (fanWalker248 arg) (\_ -> fanWalker248 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker125 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker166 body) Nothing (\inner -> fanWalker166 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 25; branches to fanWalker24, fanWalker13, fanWalker17.
+fanWalker25 :: Core.Term -> Maybe Core.Term
+fanWalker25 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker24 fun) (fanWalker24 arg) (\_ -> fanWalker24 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker13 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker17 body) Nothing (\inner -> fanWalker17 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 250; branches to fanWalker249, fanWalker125, fanWalker167.
+fanWalker250 :: Core.Term -> Maybe Core.Term
+fanWalker250 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker249 fun) (fanWalker249 arg) (\_ -> fanWalker249 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker125 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker167 body) Nothing (\inner -> fanWalker167 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 251; branches to fanWalker250, fanWalker126, fanWalker168.
+fanWalker251 :: Core.Term -> Maybe Core.Term
+fanWalker251 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker250 fun) (fanWalker250 arg) (\_ -> fanWalker250 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker126 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker168 body) Nothing (\inner -> fanWalker168 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 252; branches to fanWalker251, fanWalker126, fanWalker168.
+fanWalker252 :: Core.Term -> Maybe Core.Term
+fanWalker252 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker251 fun) (fanWalker251 arg) (\_ -> fanWalker251 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker126 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker168 body) Nothing (\inner -> fanWalker168 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 253; branches to fanWalker252, fanWalker127, fanWalker169.
+fanWalker253 :: Core.Term -> Maybe Core.Term
+fanWalker253 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker252 fun) (fanWalker252 arg) (\_ -> fanWalker252 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker127 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker169 body) Nothing (\inner -> fanWalker169 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 254; branches to fanWalker253, fanWalker127, fanWalker170.
+fanWalker254 :: Core.Term -> Maybe Core.Term
+fanWalker254 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker253 fun) (fanWalker253 arg) (\_ -> fanWalker253 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker127 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker170 body) Nothing (\inner -> fanWalker170 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 255; branches to fanWalker254, fanWalker128, fanWalker170.
+fanWalker255 :: Core.Term -> Maybe Core.Term
+fanWalker255 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker254 fun) (fanWalker254 arg) (\_ -> fanWalker254 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker128 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker170 body) Nothing (\inner -> fanWalker170 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 256; branches to fanWalker255, fanWalker128, fanWalker171.
+fanWalker256 :: Core.Term -> Maybe Core.Term
+fanWalker256 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker255 fun) (fanWalker255 arg) (\_ -> fanWalker255 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker128 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker171 body) Nothing (\inner -> fanWalker171 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 257; branches to fanWalker256, fanWalker129, fanWalker172.
+fanWalker257 :: Core.Term -> Maybe Core.Term
+fanWalker257 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker256 fun) (fanWalker256 arg) (\_ -> fanWalker256 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker129 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker172 body) Nothing (\inner -> fanWalker172 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 258; branches to fanWalker257, fanWalker129, fanWalker172.
+fanWalker258 :: Core.Term -> Maybe Core.Term
+fanWalker258 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker257 fun) (fanWalker257 arg) (\_ -> fanWalker257 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker129 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker172 body) Nothing (\inner -> fanWalker172 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 259; branches to fanWalker258, fanWalker130, fanWalker173.
+fanWalker259 :: Core.Term -> Maybe Core.Term
+fanWalker259 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker258 fun) (fanWalker258 arg) (\_ -> fanWalker258 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker130 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker173 body) Nothing (\inner -> fanWalker173 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 26; branches to fanWalker25, fanWalker13, fanWalker18.
+fanWalker26 :: Core.Term -> Maybe Core.Term
+fanWalker26 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker25 fun) (fanWalker25 arg) (\_ -> fanWalker25 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker13 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker18 body) Nothing (\inner -> fanWalker18 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 260; branches to fanWalker259, fanWalker130, fanWalker174.
+fanWalker260 :: Core.Term -> Maybe Core.Term
+fanWalker260 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker259 fun) (fanWalker259 arg) (\_ -> fanWalker259 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker130 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker174 body) Nothing (\inner -> fanWalker174 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 261; branches to fanWalker260, fanWalker131, fanWalker174.
+fanWalker261 :: Core.Term -> Maybe Core.Term
+fanWalker261 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker260 fun) (fanWalker260 arg) (\_ -> fanWalker260 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker131 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker174 body) Nothing (\inner -> fanWalker174 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 262; branches to fanWalker261, fanWalker131, fanWalker175.
+fanWalker262 :: Core.Term -> Maybe Core.Term
+fanWalker262 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker261 fun) (fanWalker261 arg) (\_ -> fanWalker261 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker131 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker175 body) Nothing (\inner -> fanWalker175 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 263; branches to fanWalker262, fanWalker132, fanWalker176.
+fanWalker263 :: Core.Term -> Maybe Core.Term
+fanWalker263 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker262 fun) (fanWalker262 arg) (\_ -> fanWalker262 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker132 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker176 body) Nothing (\inner -> fanWalker176 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 264; branches to fanWalker263, fanWalker132, fanWalker176.
+fanWalker264 :: Core.Term -> Maybe Core.Term
+fanWalker264 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker263 fun) (fanWalker263 arg) (\_ -> fanWalker263 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker132 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker176 body) Nothing (\inner -> fanWalker176 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 265; branches to fanWalker264, fanWalker133, fanWalker177.
+fanWalker265 :: Core.Term -> Maybe Core.Term
+fanWalker265 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker264 fun) (fanWalker264 arg) (\_ -> fanWalker264 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker133 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker177 body) Nothing (\inner -> fanWalker177 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 266; branches to fanWalker265, fanWalker133, fanWalker178.
+fanWalker266 :: Core.Term -> Maybe Core.Term
+fanWalker266 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker265 fun) (fanWalker265 arg) (\_ -> fanWalker265 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker133 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker178 body) Nothing (\inner -> fanWalker178 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 267; branches to fanWalker266, fanWalker134, fanWalker178.
+fanWalker267 :: Core.Term -> Maybe Core.Term
+fanWalker267 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker266 fun) (fanWalker266 arg) (\_ -> fanWalker266 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker134 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker178 body) Nothing (\inner -> fanWalker178 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 268; branches to fanWalker267, fanWalker134, fanWalker179.
+fanWalker268 :: Core.Term -> Maybe Core.Term
+fanWalker268 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker267 fun) (fanWalker267 arg) (\_ -> fanWalker267 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker134 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker179 body) Nothing (\inner -> fanWalker179 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 269; branches to fanWalker268, fanWalker135, fanWalker180.
+fanWalker269 :: Core.Term -> Maybe Core.Term
+fanWalker269 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker268 fun) (fanWalker268 arg) (\_ -> fanWalker268 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker135 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker180 body) Nothing (\inner -> fanWalker180 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 27; branches to fanWalker26, fanWalker14, fanWalker18.
+fanWalker27 :: Core.Term -> Maybe Core.Term
+fanWalker27 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker26 fun) (fanWalker26 arg) (\_ -> fanWalker26 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker14 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker18 body) Nothing (\inner -> fanWalker18 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 270; branches to fanWalker269, fanWalker135, fanWalker180.
+fanWalker270 :: Core.Term -> Maybe Core.Term
+fanWalker270 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker269 fun) (fanWalker269 arg) (\_ -> fanWalker269 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker135 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker180 body) Nothing (\inner -> fanWalker180 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 271; branches to fanWalker270, fanWalker136, fanWalker181.
+fanWalker271 :: Core.Term -> Maybe Core.Term
+fanWalker271 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker270 fun) (fanWalker270 arg) (\_ -> fanWalker270 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker136 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker181 body) Nothing (\inner -> fanWalker181 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 272; branches to fanWalker271, fanWalker136, fanWalker182.
+fanWalker272 :: Core.Term -> Maybe Core.Term
+fanWalker272 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker271 fun) (fanWalker271 arg) (\_ -> fanWalker271 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker136 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker182 body) Nothing (\inner -> fanWalker182 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 273; branches to fanWalker272, fanWalker137, fanWalker182.
+fanWalker273 :: Core.Term -> Maybe Core.Term
+fanWalker273 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker272 fun) (fanWalker272 arg) (\_ -> fanWalker272 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker137 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker182 body) Nothing (\inner -> fanWalker182 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 274; branches to fanWalker273, fanWalker137, fanWalker183.
+fanWalker274 :: Core.Term -> Maybe Core.Term
+fanWalker274 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker273 fun) (fanWalker273 arg) (\_ -> fanWalker273 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker137 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker183 body) Nothing (\inner -> fanWalker183 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 275; branches to fanWalker274, fanWalker138, fanWalker184.
+fanWalker275 :: Core.Term -> Maybe Core.Term
+fanWalker275 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker274 fun) (fanWalker274 arg) (\_ -> fanWalker274 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker138 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker184 body) Nothing (\inner -> fanWalker184 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 276; branches to fanWalker275, fanWalker138, fanWalker184.
+fanWalker276 :: Core.Term -> Maybe Core.Term
+fanWalker276 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker275 fun) (fanWalker275 arg) (\_ -> fanWalker275 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker138 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker184 body) Nothing (\inner -> fanWalker184 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 277; branches to fanWalker276, fanWalker139, fanWalker185.
+fanWalker277 :: Core.Term -> Maybe Core.Term
+fanWalker277 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker276 fun) (fanWalker276 arg) (\_ -> fanWalker276 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker139 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker185 body) Nothing (\inner -> fanWalker185 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 278; branches to fanWalker277, fanWalker139, fanWalker186.
+fanWalker278 :: Core.Term -> Maybe Core.Term
+fanWalker278 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker277 fun) (fanWalker277 arg) (\_ -> fanWalker277 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker139 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker186 body) Nothing (\inner -> fanWalker186 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 279; branches to fanWalker278, fanWalker140, fanWalker186.
+fanWalker279 :: Core.Term -> Maybe Core.Term
+fanWalker279 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker278 fun) (fanWalker278 arg) (\_ -> fanWalker278 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker140 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker186 body) Nothing (\inner -> fanWalker186 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 28; branches to fanWalker27, fanWalker14, fanWalker19.
+fanWalker28 :: Core.Term -> Maybe Core.Term
+fanWalker28 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker27 fun) (fanWalker27 arg) (\_ -> fanWalker27 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker14 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker19 body) Nothing (\inner -> fanWalker19 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 280; branches to fanWalker279, fanWalker140, fanWalker187.
+fanWalker280 :: Core.Term -> Maybe Core.Term
+fanWalker280 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker279 fun) (fanWalker279 arg) (\_ -> fanWalker279 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker140 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker187 body) Nothing (\inner -> fanWalker187 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 281; branches to fanWalker280, fanWalker141, fanWalker188.
+fanWalker281 :: Core.Term -> Maybe Core.Term
+fanWalker281 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker280 fun) (fanWalker280 arg) (\_ -> fanWalker280 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker141 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker188 body) Nothing (\inner -> fanWalker188 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 282; branches to fanWalker281, fanWalker141, fanWalker188.
+fanWalker282 :: Core.Term -> Maybe Core.Term
+fanWalker282 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker281 fun) (fanWalker281 arg) (\_ -> fanWalker281 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker141 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker188 body) Nothing (\inner -> fanWalker188 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 283; branches to fanWalker282, fanWalker142, fanWalker189.
+fanWalker283 :: Core.Term -> Maybe Core.Term
+fanWalker283 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker282 fun) (fanWalker282 arg) (\_ -> fanWalker282 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker142 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker189 body) Nothing (\inner -> fanWalker189 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 284; branches to fanWalker283, fanWalker142, fanWalker190.
+fanWalker284 :: Core.Term -> Maybe Core.Term
+fanWalker284 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker283 fun) (fanWalker283 arg) (\_ -> fanWalker283 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker142 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker190 body) Nothing (\inner -> fanWalker190 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 285; branches to fanWalker284, fanWalker143, fanWalker190.
+fanWalker285 :: Core.Term -> Maybe Core.Term
+fanWalker285 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker284 fun) (fanWalker284 arg) (\_ -> fanWalker284 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker143 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker190 body) Nothing (\inner -> fanWalker190 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 286; branches to fanWalker285, fanWalker143, fanWalker191.
+fanWalker286 :: Core.Term -> Maybe Core.Term
+fanWalker286 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker285 fun) (fanWalker285 arg) (\_ -> fanWalker285 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker143 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker191 body) Nothing (\inner -> fanWalker191 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 287; branches to fanWalker286, fanWalker144, fanWalker192.
+fanWalker287 :: Core.Term -> Maybe Core.Term
+fanWalker287 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker286 fun) (fanWalker286 arg) (\_ -> fanWalker286 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker144 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker192 body) Nothing (\inner -> fanWalker192 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 288; branches to fanWalker287, fanWalker144, fanWalker192.
+fanWalker288 :: Core.Term -> Maybe Core.Term
+fanWalker288 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker287 fun) (fanWalker287 arg) (\_ -> fanWalker287 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker144 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker192 body) Nothing (\inner -> fanWalker192 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 289; branches to fanWalker288, fanWalker145, fanWalker193.
+fanWalker289 :: Core.Term -> Maybe Core.Term
+fanWalker289 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker288 fun) (fanWalker288 arg) (\_ -> fanWalker288 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker145 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker193 body) Nothing (\inner -> fanWalker193 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 29; branches to fanWalker28, fanWalker15, fanWalker20.
+fanWalker29 :: Core.Term -> Maybe Core.Term
+fanWalker29 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker28 fun) (fanWalker28 arg) (\_ -> fanWalker28 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker15 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker20 body) Nothing (\inner -> fanWalker20 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 290; branches to fanWalker289, fanWalker145, fanWalker194.
+fanWalker290 :: Core.Term -> Maybe Core.Term
+fanWalker290 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker289 fun) (fanWalker289 arg) (\_ -> fanWalker289 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker145 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker194 body) Nothing (\inner -> fanWalker194 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 291; branches to fanWalker290, fanWalker146, fanWalker194.
+fanWalker291 :: Core.Term -> Maybe Core.Term
+fanWalker291 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker290 fun) (fanWalker290 arg) (\_ -> fanWalker290 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker146 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker194 body) Nothing (\inner -> fanWalker194 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 292; branches to fanWalker291, fanWalker146, fanWalker195.
+fanWalker292 :: Core.Term -> Maybe Core.Term
+fanWalker292 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker291 fun) (fanWalker291 arg) (\_ -> fanWalker291 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker146 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker195 body) Nothing (\inner -> fanWalker195 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 293; branches to fanWalker292, fanWalker147, fanWalker196.
+fanWalker293 :: Core.Term -> Maybe Core.Term
+fanWalker293 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker292 fun) (fanWalker292 arg) (\_ -> fanWalker292 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker147 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker196 body) Nothing (\inner -> fanWalker196 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 294; branches to fanWalker293, fanWalker147, fanWalker196.
+fanWalker294 :: Core.Term -> Maybe Core.Term
+fanWalker294 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker293 fun) (fanWalker293 arg) (\_ -> fanWalker293 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker147 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker196 body) Nothing (\inner -> fanWalker196 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 295; branches to fanWalker294, fanWalker148, fanWalker197.
+fanWalker295 :: Core.Term -> Maybe Core.Term
+fanWalker295 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker294 fun) (fanWalker294 arg) (\_ -> fanWalker294 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker148 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker197 body) Nothing (\inner -> fanWalker197 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 296; branches to fanWalker295, fanWalker148, fanWalker198.
+fanWalker296 :: Core.Term -> Maybe Core.Term
+fanWalker296 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker295 fun) (fanWalker295 arg) (\_ -> fanWalker295 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker148 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker198 body) Nothing (\inner -> fanWalker198 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 297; branches to fanWalker296, fanWalker149, fanWalker198.
+fanWalker297 :: Core.Term -> Maybe Core.Term
+fanWalker297 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker296 fun) (fanWalker296 arg) (\_ -> fanWalker296 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker149 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker198 body) Nothing (\inner -> fanWalker198 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 298; branches to fanWalker297, fanWalker149, fanWalker199.
+fanWalker298 :: Core.Term -> Maybe Core.Term
+fanWalker298 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker297 fun) (fanWalker297 arg) (\_ -> fanWalker297 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker149 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker199 body) Nothing (\inner -> fanWalker199 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 299; branches to fanWalker298, fanWalker150, fanWalker200.
+fanWalker299 :: Core.Term -> Maybe Core.Term
+fanWalker299 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker298 fun) (fanWalker298 arg) (\_ -> fanWalker298 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker150 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker200 body) Nothing (\inner -> fanWalker200 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 3; branches to fanWalker2, fanWalker2, fanWalker2.
+fanWalker3 :: Core.Term -> Maybe Core.Term
+fanWalker3 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker2 fun) (fanWalker2 arg) (\_ -> fanWalker2 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker2 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker2 body) Nothing (\inner -> fanWalker2 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 30; branches to fanWalker29, fanWalker15, fanWalker20.
+fanWalker30 :: Core.Term -> Maybe Core.Term
+fanWalker30 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker29 fun) (fanWalker29 arg) (\_ -> fanWalker29 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker15 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker20 body) Nothing (\inner -> fanWalker20 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 300; branches to fanWalker299, fanWalker150, fanWalker200.
+fanWalker300 :: Core.Term -> Maybe Core.Term
+fanWalker300 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker299 fun) (fanWalker299 arg) (\_ -> fanWalker299 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker150 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker200 body) Nothing (\inner -> fanWalker200 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 301; branches to fanWalker300, fanWalker151, fanWalker201.
+fanWalker301 :: Core.Term -> Maybe Core.Term
+fanWalker301 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker300 fun) (fanWalker300 arg) (\_ -> fanWalker300 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker151 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker201 body) Nothing (\inner -> fanWalker201 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 302; branches to fanWalker301, fanWalker151, fanWalker202.
+fanWalker302 :: Core.Term -> Maybe Core.Term
+fanWalker302 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker301 fun) (fanWalker301 arg) (\_ -> fanWalker301 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker151 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker202 body) Nothing (\inner -> fanWalker202 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 303; branches to fanWalker302, fanWalker152, fanWalker202.
+fanWalker303 :: Core.Term -> Maybe Core.Term
+fanWalker303 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker302 fun) (fanWalker302 arg) (\_ -> fanWalker302 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker152 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker202 body) Nothing (\inner -> fanWalker202 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 304; branches to fanWalker303, fanWalker152, fanWalker203.
+fanWalker304 :: Core.Term -> Maybe Core.Term
+fanWalker304 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker303 fun) (fanWalker303 arg) (\_ -> fanWalker303 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker152 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker203 body) Nothing (\inner -> fanWalker203 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 305; branches to fanWalker304, fanWalker153, fanWalker204.
+fanWalker305 :: Core.Term -> Maybe Core.Term
+fanWalker305 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker304 fun) (fanWalker304 arg) (\_ -> fanWalker304 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker153 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker204 body) Nothing (\inner -> fanWalker204 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 306; branches to fanWalker305, fanWalker153, fanWalker204.
+fanWalker306 :: Core.Term -> Maybe Core.Term
+fanWalker306 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker305 fun) (fanWalker305 arg) (\_ -> fanWalker305 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker153 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker204 body) Nothing (\inner -> fanWalker204 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 307; branches to fanWalker306, fanWalker154, fanWalker205.
+fanWalker307 :: Core.Term -> Maybe Core.Term
+fanWalker307 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker306 fun) (fanWalker306 arg) (\_ -> fanWalker306 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker154 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker205 body) Nothing (\inner -> fanWalker205 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 308; branches to fanWalker307, fanWalker154, fanWalker206.
+fanWalker308 :: Core.Term -> Maybe Core.Term
+fanWalker308 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker307 fun) (fanWalker307 arg) (\_ -> fanWalker307 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker154 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker206 body) Nothing (\inner -> fanWalker206 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 309; branches to fanWalker308, fanWalker155, fanWalker206.
+fanWalker309 :: Core.Term -> Maybe Core.Term
+fanWalker309 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker308 fun) (fanWalker308 arg) (\_ -> fanWalker308 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker155 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker206 body) Nothing (\inner -> fanWalker206 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 31; branches to fanWalker30, fanWalker16, fanWalker21.
+fanWalker31 :: Core.Term -> Maybe Core.Term
+fanWalker31 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker30 fun) (fanWalker30 arg) (\_ -> fanWalker30 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker16 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker21 body) Nothing (\inner -> fanWalker21 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 310; branches to fanWalker309, fanWalker155, fanWalker207.
+fanWalker310 :: Core.Term -> Maybe Core.Term
+fanWalker310 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker309 fun) (fanWalker309 arg) (\_ -> fanWalker309 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker155 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker207 body) Nothing (\inner -> fanWalker207 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 311; branches to fanWalker310, fanWalker156, fanWalker208.
+fanWalker311 :: Core.Term -> Maybe Core.Term
+fanWalker311 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker310 fun) (fanWalker310 arg) (\_ -> fanWalker310 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker156 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker208 body) Nothing (\inner -> fanWalker208 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 312; branches to fanWalker311, fanWalker156, fanWalker208.
+fanWalker312 :: Core.Term -> Maybe Core.Term
+fanWalker312 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker311 fun) (fanWalker311 arg) (\_ -> fanWalker311 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker156 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker208 body) Nothing (\inner -> fanWalker208 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 313; branches to fanWalker312, fanWalker157, fanWalker209.
+fanWalker313 :: Core.Term -> Maybe Core.Term
+fanWalker313 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker312 fun) (fanWalker312 arg) (\_ -> fanWalker312 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker157 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker209 body) Nothing (\inner -> fanWalker209 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 314; branches to fanWalker313, fanWalker157, fanWalker210.
+fanWalker314 :: Core.Term -> Maybe Core.Term
+fanWalker314 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker313 fun) (fanWalker313 arg) (\_ -> fanWalker313 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker157 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker210 body) Nothing (\inner -> fanWalker210 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 315; branches to fanWalker314, fanWalker158, fanWalker210.
+fanWalker315 :: Core.Term -> Maybe Core.Term
+fanWalker315 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker314 fun) (fanWalker314 arg) (\_ -> fanWalker314 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker158 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker210 body) Nothing (\inner -> fanWalker210 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 316; branches to fanWalker315, fanWalker158, fanWalker211.
+fanWalker316 :: Core.Term -> Maybe Core.Term
+fanWalker316 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker315 fun) (fanWalker315 arg) (\_ -> fanWalker315 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker158 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker211 body) Nothing (\inner -> fanWalker211 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 317; branches to fanWalker316, fanWalker159, fanWalker212.
+fanWalker317 :: Core.Term -> Maybe Core.Term
+fanWalker317 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker316 fun) (fanWalker316 arg) (\_ -> fanWalker316 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker159 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker212 body) Nothing (\inner -> fanWalker212 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 318; branches to fanWalker317, fanWalker159, fanWalker212.
+fanWalker318 :: Core.Term -> Maybe Core.Term
+fanWalker318 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker317 fun) (fanWalker317 arg) (\_ -> fanWalker317 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker159 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker212 body) Nothing (\inner -> fanWalker212 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 319; branches to fanWalker318, fanWalker160, fanWalker213.
+fanWalker319 :: Core.Term -> Maybe Core.Term
+fanWalker319 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker318 fun) (fanWalker318 arg) (\_ -> fanWalker318 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker160 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker213 body) Nothing (\inner -> fanWalker213 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 32; branches to fanWalker31, fanWalker16, fanWalker22.
+fanWalker32 :: Core.Term -> Maybe Core.Term
+fanWalker32 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker31 fun) (fanWalker31 arg) (\_ -> fanWalker31 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker16 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker22 body) Nothing (\inner -> fanWalker22 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 320; branches to fanWalker319, fanWalker160, fanWalker214.
+fanWalker320 :: Core.Term -> Maybe Core.Term
+fanWalker320 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker319 fun) (fanWalker319 arg) (\_ -> fanWalker319 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker160 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker214 body) Nothing (\inner -> fanWalker214 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 321; branches to fanWalker320, fanWalker161, fanWalker214.
+fanWalker321 :: Core.Term -> Maybe Core.Term
+fanWalker321 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker320 fun) (fanWalker320 arg) (\_ -> fanWalker320 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker161 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker214 body) Nothing (\inner -> fanWalker214 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 322; branches to fanWalker321, fanWalker161, fanWalker215.
+fanWalker322 :: Core.Term -> Maybe Core.Term
+fanWalker322 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker321 fun) (fanWalker321 arg) (\_ -> fanWalker321 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker161 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker215 body) Nothing (\inner -> fanWalker215 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 323; branches to fanWalker322, fanWalker162, fanWalker216.
+fanWalker323 :: Core.Term -> Maybe Core.Term
+fanWalker323 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker322 fun) (fanWalker322 arg) (\_ -> fanWalker322 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker162 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker216 body) Nothing (\inner -> fanWalker216 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 324; branches to fanWalker323, fanWalker162, fanWalker216.
+fanWalker324 :: Core.Term -> Maybe Core.Term
+fanWalker324 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker323 fun) (fanWalker323 arg) (\_ -> fanWalker323 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker162 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker216 body) Nothing (\inner -> fanWalker216 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 325; branches to fanWalker324, fanWalker163, fanWalker217.
+fanWalker325 :: Core.Term -> Maybe Core.Term
+fanWalker325 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker324 fun) (fanWalker324 arg) (\_ -> fanWalker324 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker163 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker217 body) Nothing (\inner -> fanWalker217 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 326; branches to fanWalker325, fanWalker163, fanWalker218.
+fanWalker326 :: Core.Term -> Maybe Core.Term
+fanWalker326 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker325 fun) (fanWalker325 arg) (\_ -> fanWalker325 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker163 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker218 body) Nothing (\inner -> fanWalker218 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 327; branches to fanWalker326, fanWalker164, fanWalker218.
+fanWalker327 :: Core.Term -> Maybe Core.Term
+fanWalker327 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker326 fun) (fanWalker326 arg) (\_ -> fanWalker326 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker164 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker218 body) Nothing (\inner -> fanWalker218 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 328; branches to fanWalker327, fanWalker164, fanWalker219.
+fanWalker328 :: Core.Term -> Maybe Core.Term
+fanWalker328 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker327 fun) (fanWalker327 arg) (\_ -> fanWalker327 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker164 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker219 body) Nothing (\inner -> fanWalker219 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 329; branches to fanWalker328, fanWalker165, fanWalker220.
+fanWalker329 :: Core.Term -> Maybe Core.Term
+fanWalker329 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker328 fun) (fanWalker328 arg) (\_ -> fanWalker328 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker165 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker220 body) Nothing (\inner -> fanWalker220 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 33; branches to fanWalker32, fanWalker17, fanWalker22.
+fanWalker33 :: Core.Term -> Maybe Core.Term
+fanWalker33 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker32 fun) (fanWalker32 arg) (\_ -> fanWalker32 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker17 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker22 body) Nothing (\inner -> fanWalker22 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 330; branches to fanWalker329, fanWalker165, fanWalker220.
+fanWalker330 :: Core.Term -> Maybe Core.Term
+fanWalker330 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker329 fun) (fanWalker329 arg) (\_ -> fanWalker329 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker165 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker220 body) Nothing (\inner -> fanWalker220 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 331; branches to fanWalker330, fanWalker166, fanWalker221.
+fanWalker331 :: Core.Term -> Maybe Core.Term
+fanWalker331 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker330 fun) (fanWalker330 arg) (\_ -> fanWalker330 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker166 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker221 body) Nothing (\inner -> fanWalker221 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 332; branches to fanWalker331, fanWalker166, fanWalker222.
+fanWalker332 :: Core.Term -> Maybe Core.Term
+fanWalker332 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker331 fun) (fanWalker331 arg) (\_ -> fanWalker331 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker166 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker222 body) Nothing (\inner -> fanWalker222 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 333; branches to fanWalker332, fanWalker167, fanWalker222.
+fanWalker333 :: Core.Term -> Maybe Core.Term
+fanWalker333 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker332 fun) (fanWalker332 arg) (\_ -> fanWalker332 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker167 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker222 body) Nothing (\inner -> fanWalker222 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 334; branches to fanWalker333, fanWalker167, fanWalker223.
+fanWalker334 :: Core.Term -> Maybe Core.Term
+fanWalker334 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker333 fun) (fanWalker333 arg) (\_ -> fanWalker333 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker167 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker223 body) Nothing (\inner -> fanWalker223 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 335; branches to fanWalker334, fanWalker168, fanWalker224.
+fanWalker335 :: Core.Term -> Maybe Core.Term
+fanWalker335 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker334 fun) (fanWalker334 arg) (\_ -> fanWalker334 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker168 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker224 body) Nothing (\inner -> fanWalker224 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 336; branches to fanWalker335, fanWalker168, fanWalker224.
+fanWalker336 :: Core.Term -> Maybe Core.Term
+fanWalker336 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker335 fun) (fanWalker335 arg) (\_ -> fanWalker335 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker168 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker224 body) Nothing (\inner -> fanWalker224 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 337; branches to fanWalker336, fanWalker169, fanWalker225.
+fanWalker337 :: Core.Term -> Maybe Core.Term
+fanWalker337 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker336 fun) (fanWalker336 arg) (\_ -> fanWalker336 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker169 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker225 body) Nothing (\inner -> fanWalker225 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 338; branches to fanWalker337, fanWalker169, fanWalker226.
+fanWalker338 :: Core.Term -> Maybe Core.Term
+fanWalker338 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker337 fun) (fanWalker337 arg) (\_ -> fanWalker337 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker169 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker226 body) Nothing (\inner -> fanWalker226 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 339; branches to fanWalker338, fanWalker170, fanWalker226.
+fanWalker339 :: Core.Term -> Maybe Core.Term
+fanWalker339 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker338 fun) (fanWalker338 arg) (\_ -> fanWalker338 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker170 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker226 body) Nothing (\inner -> fanWalker226 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 34; branches to fanWalker33, fanWalker17, fanWalker23.
+fanWalker34 :: Core.Term -> Maybe Core.Term
+fanWalker34 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker33 fun) (fanWalker33 arg) (\_ -> fanWalker33 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker17 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker23 body) Nothing (\inner -> fanWalker23 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 340; branches to fanWalker339, fanWalker170, fanWalker227.
+fanWalker340 :: Core.Term -> Maybe Core.Term
+fanWalker340 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker339 fun) (fanWalker339 arg) (\_ -> fanWalker339 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker170 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker227 body) Nothing (\inner -> fanWalker227 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 341; branches to fanWalker340, fanWalker171, fanWalker228.
+fanWalker341 :: Core.Term -> Maybe Core.Term
+fanWalker341 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker340 fun) (fanWalker340 arg) (\_ -> fanWalker340 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker171 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker228 body) Nothing (\inner -> fanWalker228 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 342; branches to fanWalker341, fanWalker171, fanWalker228.
+fanWalker342 :: Core.Term -> Maybe Core.Term
+fanWalker342 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker341 fun) (fanWalker341 arg) (\_ -> fanWalker341 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker171 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker228 body) Nothing (\inner -> fanWalker228 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 343; branches to fanWalker342, fanWalker172, fanWalker229.
+fanWalker343 :: Core.Term -> Maybe Core.Term
+fanWalker343 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker342 fun) (fanWalker342 arg) (\_ -> fanWalker342 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker172 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker229 body) Nothing (\inner -> fanWalker229 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 344; branches to fanWalker343, fanWalker172, fanWalker230.
+fanWalker344 :: Core.Term -> Maybe Core.Term
+fanWalker344 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker343 fun) (fanWalker343 arg) (\_ -> fanWalker343 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker172 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker230 body) Nothing (\inner -> fanWalker230 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 345; branches to fanWalker344, fanWalker173, fanWalker230.
+fanWalker345 :: Core.Term -> Maybe Core.Term
+fanWalker345 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker344 fun) (fanWalker344 arg) (\_ -> fanWalker344 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker173 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker230 body) Nothing (\inner -> fanWalker230 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 346; branches to fanWalker345, fanWalker173, fanWalker231.
+fanWalker346 :: Core.Term -> Maybe Core.Term
+fanWalker346 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker345 fun) (fanWalker345 arg) (\_ -> fanWalker345 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker173 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker231 body) Nothing (\inner -> fanWalker231 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 347; branches to fanWalker346, fanWalker174, fanWalker232.
+fanWalker347 :: Core.Term -> Maybe Core.Term
+fanWalker347 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker346 fun) (fanWalker346 arg) (\_ -> fanWalker346 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker174 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker232 body) Nothing (\inner -> fanWalker232 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 348; branches to fanWalker347, fanWalker174, fanWalker232.
+fanWalker348 :: Core.Term -> Maybe Core.Term
+fanWalker348 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker347 fun) (fanWalker347 arg) (\_ -> fanWalker347 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker174 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker232 body) Nothing (\inner -> fanWalker232 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 349; branches to fanWalker348, fanWalker175, fanWalker233.
+fanWalker349 :: Core.Term -> Maybe Core.Term
+fanWalker349 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker348 fun) (fanWalker348 arg) (\_ -> fanWalker348 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker175 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker233 body) Nothing (\inner -> fanWalker233 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 35; branches to fanWalker34, fanWalker18, fanWalker24.
+fanWalker35 :: Core.Term -> Maybe Core.Term
+fanWalker35 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker34 fun) (fanWalker34 arg) (\_ -> fanWalker34 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker18 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker24 body) Nothing (\inner -> fanWalker24 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 350; branches to fanWalker349, fanWalker175, fanWalker234.
+fanWalker350 :: Core.Term -> Maybe Core.Term
+fanWalker350 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker349 fun) (fanWalker349 arg) (\_ -> fanWalker349 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker175 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker234 body) Nothing (\inner -> fanWalker234 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 351; branches to fanWalker350, fanWalker176, fanWalker234.
+fanWalker351 :: Core.Term -> Maybe Core.Term
+fanWalker351 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker350 fun) (fanWalker350 arg) (\_ -> fanWalker350 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker176 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker234 body) Nothing (\inner -> fanWalker234 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 352; branches to fanWalker351, fanWalker176, fanWalker235.
+fanWalker352 :: Core.Term -> Maybe Core.Term
+fanWalker352 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker351 fun) (fanWalker351 arg) (\_ -> fanWalker351 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker176 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker235 body) Nothing (\inner -> fanWalker235 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 353; branches to fanWalker352, fanWalker177, fanWalker236.
+fanWalker353 :: Core.Term -> Maybe Core.Term
+fanWalker353 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker352 fun) (fanWalker352 arg) (\_ -> fanWalker352 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker177 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker236 body) Nothing (\inner -> fanWalker236 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 354; branches to fanWalker353, fanWalker177, fanWalker236.
+fanWalker354 :: Core.Term -> Maybe Core.Term
+fanWalker354 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker353 fun) (fanWalker353 arg) (\_ -> fanWalker353 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker177 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker236 body) Nothing (\inner -> fanWalker236 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 355; branches to fanWalker354, fanWalker178, fanWalker237.
+fanWalker355 :: Core.Term -> Maybe Core.Term
+fanWalker355 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker354 fun) (fanWalker354 arg) (\_ -> fanWalker354 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker178 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker237 body) Nothing (\inner -> fanWalker237 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 356; branches to fanWalker355, fanWalker178, fanWalker238.
+fanWalker356 :: Core.Term -> Maybe Core.Term
+fanWalker356 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker355 fun) (fanWalker355 arg) (\_ -> fanWalker355 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker178 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker238 body) Nothing (\inner -> fanWalker238 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 357; branches to fanWalker356, fanWalker179, fanWalker238.
+fanWalker357 :: Core.Term -> Maybe Core.Term
+fanWalker357 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker356 fun) (fanWalker356 arg) (\_ -> fanWalker356 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker179 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker238 body) Nothing (\inner -> fanWalker238 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 358; branches to fanWalker357, fanWalker179, fanWalker239.
+fanWalker358 :: Core.Term -> Maybe Core.Term
+fanWalker358 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker357 fun) (fanWalker357 arg) (\_ -> fanWalker357 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker179 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker239 body) Nothing (\inner -> fanWalker239 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 359; branches to fanWalker358, fanWalker180, fanWalker240.
+fanWalker359 :: Core.Term -> Maybe Core.Term
+fanWalker359 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker358 fun) (fanWalker358 arg) (\_ -> fanWalker358 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker180 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker240 body) Nothing (\inner -> fanWalker240 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 36; branches to fanWalker35, fanWalker18, fanWalker24.
+fanWalker36 :: Core.Term -> Maybe Core.Term
+fanWalker36 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker35 fun) (fanWalker35 arg) (\_ -> fanWalker35 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker18 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker24 body) Nothing (\inner -> fanWalker24 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 360; branches to fanWalker359, fanWalker180, fanWalker240.
+fanWalker360 :: Core.Term -> Maybe Core.Term
+fanWalker360 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker359 fun) (fanWalker359 arg) (\_ -> fanWalker359 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker180 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker240 body) Nothing (\inner -> fanWalker240 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 361; branches to fanWalker360, fanWalker181, fanWalker241.
+fanWalker361 :: Core.Term -> Maybe Core.Term
+fanWalker361 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker360 fun) (fanWalker360 arg) (\_ -> fanWalker360 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker181 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker241 body) Nothing (\inner -> fanWalker241 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 362; branches to fanWalker361, fanWalker181, fanWalker242.
+fanWalker362 :: Core.Term -> Maybe Core.Term
+fanWalker362 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker361 fun) (fanWalker361 arg) (\_ -> fanWalker361 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker181 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker242 body) Nothing (\inner -> fanWalker242 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 363; branches to fanWalker362, fanWalker182, fanWalker242.
+fanWalker363 :: Core.Term -> Maybe Core.Term
+fanWalker363 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker362 fun) (fanWalker362 arg) (\_ -> fanWalker362 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker182 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker242 body) Nothing (\inner -> fanWalker242 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 364; branches to fanWalker363, fanWalker182, fanWalker243.
+fanWalker364 :: Core.Term -> Maybe Core.Term
+fanWalker364 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker363 fun) (fanWalker363 arg) (\_ -> fanWalker363 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker182 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker243 body) Nothing (\inner -> fanWalker243 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 365; branches to fanWalker364, fanWalker183, fanWalker244.
+fanWalker365 :: Core.Term -> Maybe Core.Term
+fanWalker365 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker364 fun) (fanWalker364 arg) (\_ -> fanWalker364 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker183 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker244 body) Nothing (\inner -> fanWalker244 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 366; branches to fanWalker365, fanWalker183, fanWalker244.
+fanWalker366 :: Core.Term -> Maybe Core.Term
+fanWalker366 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker365 fun) (fanWalker365 arg) (\_ -> fanWalker365 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker183 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker244 body) Nothing (\inner -> fanWalker244 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 367; branches to fanWalker366, fanWalker184, fanWalker245.
+fanWalker367 :: Core.Term -> Maybe Core.Term
+fanWalker367 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker366 fun) (fanWalker366 arg) (\_ -> fanWalker366 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker184 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker245 body) Nothing (\inner -> fanWalker245 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 368; branches to fanWalker367, fanWalker184, fanWalker246.
+fanWalker368 :: Core.Term -> Maybe Core.Term
+fanWalker368 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker367 fun) (fanWalker367 arg) (\_ -> fanWalker367 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker184 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker246 body) Nothing (\inner -> fanWalker246 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 369; branches to fanWalker368, fanWalker185, fanWalker246.
+fanWalker369 :: Core.Term -> Maybe Core.Term
+fanWalker369 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker368 fun) (fanWalker368 arg) (\_ -> fanWalker368 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker185 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker246 body) Nothing (\inner -> fanWalker246 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 37; branches to fanWalker36, fanWalker19, fanWalker25.
+fanWalker37 :: Core.Term -> Maybe Core.Term
+fanWalker37 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker36 fun) (fanWalker36 arg) (\_ -> fanWalker36 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker19 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker25 body) Nothing (\inner -> fanWalker25 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 370; branches to fanWalker369, fanWalker185, fanWalker247.
+fanWalker370 :: Core.Term -> Maybe Core.Term
+fanWalker370 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker369 fun) (fanWalker369 arg) (\_ -> fanWalker369 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker185 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker247 body) Nothing (\inner -> fanWalker247 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 371; branches to fanWalker370, fanWalker186, fanWalker248.
+fanWalker371 :: Core.Term -> Maybe Core.Term
+fanWalker371 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker370 fun) (fanWalker370 arg) (\_ -> fanWalker370 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker186 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker248 body) Nothing (\inner -> fanWalker248 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 372; branches to fanWalker371, fanWalker186, fanWalker248.
+fanWalker372 :: Core.Term -> Maybe Core.Term
+fanWalker372 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker371 fun) (fanWalker371 arg) (\_ -> fanWalker371 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker186 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker248 body) Nothing (\inner -> fanWalker248 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 373; branches to fanWalker372, fanWalker187, fanWalker249.
+fanWalker373 :: Core.Term -> Maybe Core.Term
+fanWalker373 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker372 fun) (fanWalker372 arg) (\_ -> fanWalker372 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker187 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker249 body) Nothing (\inner -> fanWalker249 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 374; branches to fanWalker373, fanWalker187, fanWalker250.
+fanWalker374 :: Core.Term -> Maybe Core.Term
+fanWalker374 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker373 fun) (fanWalker373 arg) (\_ -> fanWalker373 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker187 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker250 body) Nothing (\inner -> fanWalker250 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 375; branches to fanWalker374, fanWalker188, fanWalker250.
+fanWalker375 :: Core.Term -> Maybe Core.Term
+fanWalker375 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker374 fun) (fanWalker374 arg) (\_ -> fanWalker374 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker188 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker250 body) Nothing (\inner -> fanWalker250 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 376; branches to fanWalker375, fanWalker188, fanWalker251.
+fanWalker376 :: Core.Term -> Maybe Core.Term
+fanWalker376 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker375 fun) (fanWalker375 arg) (\_ -> fanWalker375 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker188 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker251 body) Nothing (\inner -> fanWalker251 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 377; branches to fanWalker376, fanWalker189, fanWalker252.
+fanWalker377 :: Core.Term -> Maybe Core.Term
+fanWalker377 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker376 fun) (fanWalker376 arg) (\_ -> fanWalker376 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker189 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker252 body) Nothing (\inner -> fanWalker252 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 378; branches to fanWalker377, fanWalker189, fanWalker252.
+fanWalker378 :: Core.Term -> Maybe Core.Term
+fanWalker378 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker377 fun) (fanWalker377 arg) (\_ -> fanWalker377 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker189 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker252 body) Nothing (\inner -> fanWalker252 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 379; branches to fanWalker378, fanWalker190, fanWalker253.
+fanWalker379 :: Core.Term -> Maybe Core.Term
+fanWalker379 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker378 fun) (fanWalker378 arg) (\_ -> fanWalker378 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker190 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker253 body) Nothing (\inner -> fanWalker253 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 38; branches to fanWalker37, fanWalker19, fanWalker26.
+fanWalker38 :: Core.Term -> Maybe Core.Term
+fanWalker38 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker37 fun) (fanWalker37 arg) (\_ -> fanWalker37 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker19 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker26 body) Nothing (\inner -> fanWalker26 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 380; branches to fanWalker379, fanWalker190, fanWalker254.
+fanWalker380 :: Core.Term -> Maybe Core.Term
+fanWalker380 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker379 fun) (fanWalker379 arg) (\_ -> fanWalker379 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker190 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker254 body) Nothing (\inner -> fanWalker254 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 381; branches to fanWalker380, fanWalker191, fanWalker254.
+fanWalker381 :: Core.Term -> Maybe Core.Term
+fanWalker381 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker380 fun) (fanWalker380 arg) (\_ -> fanWalker380 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker191 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker254 body) Nothing (\inner -> fanWalker254 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 382; branches to fanWalker381, fanWalker191, fanWalker255.
+fanWalker382 :: Core.Term -> Maybe Core.Term
+fanWalker382 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker381 fun) (fanWalker381 arg) (\_ -> fanWalker381 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker191 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker255 body) Nothing (\inner -> fanWalker255 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 383; branches to fanWalker382, fanWalker192, fanWalker256.
+fanWalker383 :: Core.Term -> Maybe Core.Term
+fanWalker383 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker382 fun) (fanWalker382 arg) (\_ -> fanWalker382 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker192 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker256 body) Nothing (\inner -> fanWalker256 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 384; branches to fanWalker383, fanWalker192, fanWalker256.
+fanWalker384 :: Core.Term -> Maybe Core.Term
+fanWalker384 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker383 fun) (fanWalker383 arg) (\_ -> fanWalker383 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker192 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker256 body) Nothing (\inner -> fanWalker256 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 385; branches to fanWalker384, fanWalker193, fanWalker257.
+fanWalker385 :: Core.Term -> Maybe Core.Term
+fanWalker385 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker384 fun) (fanWalker384 arg) (\_ -> fanWalker384 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker193 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker257 body) Nothing (\inner -> fanWalker257 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 386; branches to fanWalker385, fanWalker193, fanWalker258.
+fanWalker386 :: Core.Term -> Maybe Core.Term
+fanWalker386 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker385 fun) (fanWalker385 arg) (\_ -> fanWalker385 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker193 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker258 body) Nothing (\inner -> fanWalker258 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 387; branches to fanWalker386, fanWalker194, fanWalker258.
+fanWalker387 :: Core.Term -> Maybe Core.Term
+fanWalker387 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker386 fun) (fanWalker386 arg) (\_ -> fanWalker386 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker194 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker258 body) Nothing (\inner -> fanWalker258 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 388; branches to fanWalker387, fanWalker194, fanWalker259.
+fanWalker388 :: Core.Term -> Maybe Core.Term
+fanWalker388 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker387 fun) (fanWalker387 arg) (\_ -> fanWalker387 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker194 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker259 body) Nothing (\inner -> fanWalker259 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 389; branches to fanWalker388, fanWalker195, fanWalker260.
+fanWalker389 :: Core.Term -> Maybe Core.Term
+fanWalker389 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker388 fun) (fanWalker388 arg) (\_ -> fanWalker388 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker195 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker260 body) Nothing (\inner -> fanWalker260 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 39; branches to fanWalker38, fanWalker20, fanWalker26.
+fanWalker39 :: Core.Term -> Maybe Core.Term
+fanWalker39 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker38 fun) (fanWalker38 arg) (\_ -> fanWalker38 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker20 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker26 body) Nothing (\inner -> fanWalker26 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 390; branches to fanWalker389, fanWalker195, fanWalker260.
+fanWalker390 :: Core.Term -> Maybe Core.Term
+fanWalker390 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker389 fun) (fanWalker389 arg) (\_ -> fanWalker389 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker195 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker260 body) Nothing (\inner -> fanWalker260 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 391; branches to fanWalker390, fanWalker196, fanWalker261.
+fanWalker391 :: Core.Term -> Maybe Core.Term
+fanWalker391 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker390 fun) (fanWalker390 arg) (\_ -> fanWalker390 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker196 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker261 body) Nothing (\inner -> fanWalker261 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 392; branches to fanWalker391, fanWalker196, fanWalker262.
+fanWalker392 :: Core.Term -> Maybe Core.Term
+fanWalker392 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker391 fun) (fanWalker391 arg) (\_ -> fanWalker391 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker196 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker262 body) Nothing (\inner -> fanWalker262 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 393; branches to fanWalker392, fanWalker197, fanWalker262.
+fanWalker393 :: Core.Term -> Maybe Core.Term
+fanWalker393 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker392 fun) (fanWalker392 arg) (\_ -> fanWalker392 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker197 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker262 body) Nothing (\inner -> fanWalker262 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 394; branches to fanWalker393, fanWalker197, fanWalker263.
+fanWalker394 :: Core.Term -> Maybe Core.Term
+fanWalker394 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker393 fun) (fanWalker393 arg) (\_ -> fanWalker393 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker197 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker263 body) Nothing (\inner -> fanWalker263 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 395; branches to fanWalker394, fanWalker198, fanWalker264.
+fanWalker395 :: Core.Term -> Maybe Core.Term
+fanWalker395 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker394 fun) (fanWalker394 arg) (\_ -> fanWalker394 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker198 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker264 body) Nothing (\inner -> fanWalker264 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 396; branches to fanWalker395, fanWalker198, fanWalker264.
+fanWalker396 :: Core.Term -> Maybe Core.Term
+fanWalker396 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker395 fun) (fanWalker395 arg) (\_ -> fanWalker395 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker198 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker264 body) Nothing (\inner -> fanWalker264 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 397; branches to fanWalker396, fanWalker199, fanWalker265.
+fanWalker397 :: Core.Term -> Maybe Core.Term
+fanWalker397 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker396 fun) (fanWalker396 arg) (\_ -> fanWalker396 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker199 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker265 body) Nothing (\inner -> fanWalker265 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 398; branches to fanWalker397, fanWalker199, fanWalker266.
+fanWalker398 :: Core.Term -> Maybe Core.Term
+fanWalker398 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker397 fun) (fanWalker397 arg) (\_ -> fanWalker397 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker199 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker266 body) Nothing (\inner -> fanWalker266 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 399; branches to fanWalker398, fanWalker200, fanWalker266.
+fanWalker399 :: Core.Term -> Maybe Core.Term
+fanWalker399 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker398 fun) (fanWalker398 arg) (\_ -> fanWalker398 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker200 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker266 body) Nothing (\inner -> fanWalker266 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 4; branches to fanWalker3, fanWalker2, fanWalker3.
+fanWalker4 :: Core.Term -> Maybe Core.Term
+fanWalker4 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker3 fun) (fanWalker3 arg) (\_ -> fanWalker3 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker2 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker3 body) Nothing (\inner -> fanWalker3 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 40; branches to fanWalker39, fanWalker20, fanWalker27.
+fanWalker40 :: Core.Term -> Maybe Core.Term
+fanWalker40 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker39 fun) (fanWalker39 arg) (\_ -> fanWalker39 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker20 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker27 body) Nothing (\inner -> fanWalker27 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 41; branches to fanWalker40, fanWalker21, fanWalker28.
+fanWalker41 :: Core.Term -> Maybe Core.Term
+fanWalker41 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker40 fun) (fanWalker40 arg) (\_ -> fanWalker40 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker21 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker28 body) Nothing (\inner -> fanWalker28 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 42; branches to fanWalker41, fanWalker21, fanWalker28.
+fanWalker42 :: Core.Term -> Maybe Core.Term
+fanWalker42 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker41 fun) (fanWalker41 arg) (\_ -> fanWalker41 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker21 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker28 body) Nothing (\inner -> fanWalker28 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 43; branches to fanWalker42, fanWalker22, fanWalker29.
+fanWalker43 :: Core.Term -> Maybe Core.Term
+fanWalker43 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker42 fun) (fanWalker42 arg) (\_ -> fanWalker42 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker22 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker29 body) Nothing (\inner -> fanWalker29 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 44; branches to fanWalker43, fanWalker22, fanWalker30.
+fanWalker44 :: Core.Term -> Maybe Core.Term
+fanWalker44 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker43 fun) (fanWalker43 arg) (\_ -> fanWalker43 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker22 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker30 body) Nothing (\inner -> fanWalker30 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 45; branches to fanWalker44, fanWalker23, fanWalker30.
+fanWalker45 :: Core.Term -> Maybe Core.Term
+fanWalker45 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker44 fun) (fanWalker44 arg) (\_ -> fanWalker44 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker23 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker30 body) Nothing (\inner -> fanWalker30 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 46; branches to fanWalker45, fanWalker23, fanWalker31.
+fanWalker46 :: Core.Term -> Maybe Core.Term
+fanWalker46 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker45 fun) (fanWalker45 arg) (\_ -> fanWalker45 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker23 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker31 body) Nothing (\inner -> fanWalker31 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 47; branches to fanWalker46, fanWalker24, fanWalker32.
+fanWalker47 :: Core.Term -> Maybe Core.Term
+fanWalker47 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker46 fun) (fanWalker46 arg) (\_ -> fanWalker46 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker24 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker32 body) Nothing (\inner -> fanWalker32 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 48; branches to fanWalker47, fanWalker24, fanWalker32.
+fanWalker48 :: Core.Term -> Maybe Core.Term
+fanWalker48 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker47 fun) (fanWalker47 arg) (\_ -> fanWalker47 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker24 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker32 body) Nothing (\inner -> fanWalker32 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 49; branches to fanWalker48, fanWalker25, fanWalker33.
+fanWalker49 :: Core.Term -> Maybe Core.Term
+fanWalker49 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker48 fun) (fanWalker48 arg) (\_ -> fanWalker48 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker25 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker33 body) Nothing (\inner -> fanWalker33 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 5; branches to fanWalker4, fanWalker3, fanWalker4.
+fanWalker5 :: Core.Term -> Maybe Core.Term
+fanWalker5 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker4 fun) (fanWalker4 arg) (\_ -> fanWalker4 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker3 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker4 body) Nothing (\inner -> fanWalker4 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 50; branches to fanWalker49, fanWalker25, fanWalker34.
+fanWalker50 :: Core.Term -> Maybe Core.Term
+fanWalker50 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker49 fun) (fanWalker49 arg) (\_ -> fanWalker49 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker25 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker34 body) Nothing (\inner -> fanWalker34 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 51; branches to fanWalker50, fanWalker26, fanWalker34.
+fanWalker51 :: Core.Term -> Maybe Core.Term
+fanWalker51 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker50 fun) (fanWalker50 arg) (\_ -> fanWalker50 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker26 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker34 body) Nothing (\inner -> fanWalker34 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 52; branches to fanWalker51, fanWalker26, fanWalker35.
+fanWalker52 :: Core.Term -> Maybe Core.Term
+fanWalker52 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker51 fun) (fanWalker51 arg) (\_ -> fanWalker51 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker26 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker35 body) Nothing (\inner -> fanWalker35 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 53; branches to fanWalker52, fanWalker27, fanWalker36.
+fanWalker53 :: Core.Term -> Maybe Core.Term
+fanWalker53 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker52 fun) (fanWalker52 arg) (\_ -> fanWalker52 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker27 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker36 body) Nothing (\inner -> fanWalker36 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 54; branches to fanWalker53, fanWalker27, fanWalker36.
+fanWalker54 :: Core.Term -> Maybe Core.Term
+fanWalker54 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker53 fun) (fanWalker53 arg) (\_ -> fanWalker53 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker27 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker36 body) Nothing (\inner -> fanWalker36 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 55; branches to fanWalker54, fanWalker28, fanWalker37.
+fanWalker55 :: Core.Term -> Maybe Core.Term
+fanWalker55 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker54 fun) (fanWalker54 arg) (\_ -> fanWalker54 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker28 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker37 body) Nothing (\inner -> fanWalker37 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 56; branches to fanWalker55, fanWalker28, fanWalker38.
+fanWalker56 :: Core.Term -> Maybe Core.Term
+fanWalker56 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker55 fun) (fanWalker55 arg) (\_ -> fanWalker55 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker28 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker38 body) Nothing (\inner -> fanWalker38 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 57; branches to fanWalker56, fanWalker29, fanWalker38.
+fanWalker57 :: Core.Term -> Maybe Core.Term
+fanWalker57 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker56 fun) (fanWalker56 arg) (\_ -> fanWalker56 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker29 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker38 body) Nothing (\inner -> fanWalker38 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 58; branches to fanWalker57, fanWalker29, fanWalker39.
+fanWalker58 :: Core.Term -> Maybe Core.Term
+fanWalker58 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker57 fun) (fanWalker57 arg) (\_ -> fanWalker57 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker29 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker39 body) Nothing (\inner -> fanWalker39 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 59; branches to fanWalker58, fanWalker30, fanWalker40.
+fanWalker59 :: Core.Term -> Maybe Core.Term
+fanWalker59 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker58 fun) (fanWalker58 arg) (\_ -> fanWalker58 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker30 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker40 body) Nothing (\inner -> fanWalker40 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 6; branches to fanWalker5, fanWalker3, fanWalker4.
+fanWalker6 :: Core.Term -> Maybe Core.Term
+fanWalker6 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker5 fun) (fanWalker5 arg) (\_ -> fanWalker5 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker3 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker4 body) Nothing (\inner -> fanWalker4 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 60; branches to fanWalker59, fanWalker30, fanWalker40.
+fanWalker60 :: Core.Term -> Maybe Core.Term
+fanWalker60 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker59 fun) (fanWalker59 arg) (\_ -> fanWalker59 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker30 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker40 body) Nothing (\inner -> fanWalker40 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 61; branches to fanWalker60, fanWalker31, fanWalker41.
+fanWalker61 :: Core.Term -> Maybe Core.Term
+fanWalker61 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker60 fun) (fanWalker60 arg) (\_ -> fanWalker60 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker31 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker41 body) Nothing (\inner -> fanWalker41 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 62; branches to fanWalker61, fanWalker31, fanWalker42.
+fanWalker62 :: Core.Term -> Maybe Core.Term
+fanWalker62 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker61 fun) (fanWalker61 arg) (\_ -> fanWalker61 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker31 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker42 body) Nothing (\inner -> fanWalker42 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 63; branches to fanWalker62, fanWalker32, fanWalker42.
+fanWalker63 :: Core.Term -> Maybe Core.Term
+fanWalker63 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker62 fun) (fanWalker62 arg) (\_ -> fanWalker62 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker32 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker42 body) Nothing (\inner -> fanWalker42 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 64; branches to fanWalker63, fanWalker32, fanWalker43.
+fanWalker64 :: Core.Term -> Maybe Core.Term
+fanWalker64 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker63 fun) (fanWalker63 arg) (\_ -> fanWalker63 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker32 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker43 body) Nothing (\inner -> fanWalker43 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 65; branches to fanWalker64, fanWalker33, fanWalker44.
+fanWalker65 :: Core.Term -> Maybe Core.Term
+fanWalker65 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker64 fun) (fanWalker64 arg) (\_ -> fanWalker64 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker33 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker44 body) Nothing (\inner -> fanWalker44 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 66; branches to fanWalker65, fanWalker33, fanWalker44.
+fanWalker66 :: Core.Term -> Maybe Core.Term
+fanWalker66 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker65 fun) (fanWalker65 arg) (\_ -> fanWalker65 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker33 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker44 body) Nothing (\inner -> fanWalker44 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 67; branches to fanWalker66, fanWalker34, fanWalker45.
+fanWalker67 :: Core.Term -> Maybe Core.Term
+fanWalker67 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker66 fun) (fanWalker66 arg) (\_ -> fanWalker66 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker34 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker45 body) Nothing (\inner -> fanWalker45 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 68; branches to fanWalker67, fanWalker34, fanWalker46.
+fanWalker68 :: Core.Term -> Maybe Core.Term
+fanWalker68 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker67 fun) (fanWalker67 arg) (\_ -> fanWalker67 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker34 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker46 body) Nothing (\inner -> fanWalker46 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 69; branches to fanWalker68, fanWalker35, fanWalker46.
+fanWalker69 :: Core.Term -> Maybe Core.Term
+fanWalker69 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker68 fun) (fanWalker68 arg) (\_ -> fanWalker68 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker35 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker46 body) Nothing (\inner -> fanWalker46 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 7; branches to fanWalker6, fanWalker4, fanWalker5.
+fanWalker7 :: Core.Term -> Maybe Core.Term
+fanWalker7 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker6 fun) (fanWalker6 arg) (\_ -> fanWalker6 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker4 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker5 body) Nothing (\inner -> fanWalker5 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 70; branches to fanWalker69, fanWalker35, fanWalker47.
+fanWalker70 :: Core.Term -> Maybe Core.Term
+fanWalker70 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker69 fun) (fanWalker69 arg) (\_ -> fanWalker69 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker35 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker47 body) Nothing (\inner -> fanWalker47 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 71; branches to fanWalker70, fanWalker36, fanWalker48.
+fanWalker71 :: Core.Term -> Maybe Core.Term
+fanWalker71 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker70 fun) (fanWalker70 arg) (\_ -> fanWalker70 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker36 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker48 body) Nothing (\inner -> fanWalker48 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 72; branches to fanWalker71, fanWalker36, fanWalker48.
+fanWalker72 :: Core.Term -> Maybe Core.Term
+fanWalker72 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker71 fun) (fanWalker71 arg) (\_ -> fanWalker71 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker36 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker48 body) Nothing (\inner -> fanWalker48 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 73; branches to fanWalker72, fanWalker37, fanWalker49.
+fanWalker73 :: Core.Term -> Maybe Core.Term
+fanWalker73 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker72 fun) (fanWalker72 arg) (\_ -> fanWalker72 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker37 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker49 body) Nothing (\inner -> fanWalker49 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 74; branches to fanWalker73, fanWalker37, fanWalker50.
+fanWalker74 :: Core.Term -> Maybe Core.Term
+fanWalker74 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker73 fun) (fanWalker73 arg) (\_ -> fanWalker73 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker37 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker50 body) Nothing (\inner -> fanWalker50 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 75; branches to fanWalker74, fanWalker38, fanWalker50.
+fanWalker75 :: Core.Term -> Maybe Core.Term
+fanWalker75 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker74 fun) (fanWalker74 arg) (\_ -> fanWalker74 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker38 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker50 body) Nothing (\inner -> fanWalker50 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 76; branches to fanWalker75, fanWalker38, fanWalker51.
+fanWalker76 :: Core.Term -> Maybe Core.Term
+fanWalker76 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker75 fun) (fanWalker75 arg) (\_ -> fanWalker75 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker38 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker51 body) Nothing (\inner -> fanWalker51 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 77; branches to fanWalker76, fanWalker39, fanWalker52.
+fanWalker77 :: Core.Term -> Maybe Core.Term
+fanWalker77 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker76 fun) (fanWalker76 arg) (\_ -> fanWalker76 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker39 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker52 body) Nothing (\inner -> fanWalker52 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 78; branches to fanWalker77, fanWalker39, fanWalker52.
+fanWalker78 :: Core.Term -> Maybe Core.Term
+fanWalker78 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker77 fun) (fanWalker77 arg) (\_ -> fanWalker77 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker39 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker52 body) Nothing (\inner -> fanWalker52 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 79; branches to fanWalker78, fanWalker40, fanWalker53.
+fanWalker79 :: Core.Term -> Maybe Core.Term
+fanWalker79 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker78 fun) (fanWalker78 arg) (\_ -> fanWalker78 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker40 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker53 body) Nothing (\inner -> fanWalker53 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 8; branches to fanWalker7, fanWalker4, fanWalker6.
+fanWalker8 :: Core.Term -> Maybe Core.Term
+fanWalker8 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker7 fun) (fanWalker7 arg) (\_ -> fanWalker7 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker4 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker6 body) Nothing (\inner -> fanWalker6 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 80; branches to fanWalker79, fanWalker40, fanWalker54.
+fanWalker80 :: Core.Term -> Maybe Core.Term
+fanWalker80 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker79 fun) (fanWalker79 arg) (\_ -> fanWalker79 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker40 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker54 body) Nothing (\inner -> fanWalker54 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 81; branches to fanWalker80, fanWalker41, fanWalker54.
+fanWalker81 :: Core.Term -> Maybe Core.Term
+fanWalker81 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker80 fun) (fanWalker80 arg) (\_ -> fanWalker80 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker41 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker54 body) Nothing (\inner -> fanWalker54 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 82; branches to fanWalker81, fanWalker41, fanWalker55.
+fanWalker82 :: Core.Term -> Maybe Core.Term
+fanWalker82 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker81 fun) (fanWalker81 arg) (\_ -> fanWalker81 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker41 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker55 body) Nothing (\inner -> fanWalker55 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 83; branches to fanWalker82, fanWalker42, fanWalker56.
+fanWalker83 :: Core.Term -> Maybe Core.Term
+fanWalker83 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker82 fun) (fanWalker82 arg) (\_ -> fanWalker82 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker42 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker56 body) Nothing (\inner -> fanWalker56 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 84; branches to fanWalker83, fanWalker42, fanWalker56.
+fanWalker84 :: Core.Term -> Maybe Core.Term
+fanWalker84 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker83 fun) (fanWalker83 arg) (\_ -> fanWalker83 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker42 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker56 body) Nothing (\inner -> fanWalker56 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 85; branches to fanWalker84, fanWalker43, fanWalker57.
+fanWalker85 :: Core.Term -> Maybe Core.Term
+fanWalker85 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker84 fun) (fanWalker84 arg) (\_ -> fanWalker84 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker43 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker57 body) Nothing (\inner -> fanWalker57 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 86; branches to fanWalker85, fanWalker43, fanWalker58.
+fanWalker86 :: Core.Term -> Maybe Core.Term
+fanWalker86 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker85 fun) (fanWalker85 arg) (\_ -> fanWalker85 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker43 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker58 body) Nothing (\inner -> fanWalker58 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 87; branches to fanWalker86, fanWalker44, fanWalker58.
+fanWalker87 :: Core.Term -> Maybe Core.Term
+fanWalker87 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker86 fun) (fanWalker86 arg) (\_ -> fanWalker86 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker44 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker58 body) Nothing (\inner -> fanWalker58 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 88; branches to fanWalker87, fanWalker44, fanWalker59.
+fanWalker88 :: Core.Term -> Maybe Core.Term
+fanWalker88 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker87 fun) (fanWalker87 arg) (\_ -> fanWalker87 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker44 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker59 body) Nothing (\inner -> fanWalker59 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 89; branches to fanWalker88, fanWalker45, fanWalker60.
+fanWalker89 :: Core.Term -> Maybe Core.Term
+fanWalker89 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker88 fun) (fanWalker88 arg) (\_ -> fanWalker88 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker45 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker60 body) Nothing (\inner -> fanWalker60 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 9; branches to fanWalker8, fanWalker5, fanWalker6.
+fanWalker9 :: Core.Term -> Maybe Core.Term
+fanWalker9 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker8 fun) (fanWalker8 arg) (\_ -> fanWalker8 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker5 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker6 body) Nothing (\inner -> fanWalker6 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 90; branches to fanWalker89, fanWalker45, fanWalker60.
+fanWalker90 :: Core.Term -> Maybe Core.Term
+fanWalker90 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker89 fun) (fanWalker89 arg) (\_ -> fanWalker89 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker45 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker60 body) Nothing (\inner -> fanWalker60 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 91; branches to fanWalker90, fanWalker46, fanWalker61.
+fanWalker91 :: Core.Term -> Maybe Core.Term
+fanWalker91 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker90 fun) (fanWalker90 arg) (\_ -> fanWalker90 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker46 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker61 body) Nothing (\inner -> fanWalker61 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 92; branches to fanWalker91, fanWalker46, fanWalker62.
+fanWalker92 :: Core.Term -> Maybe Core.Term
+fanWalker92 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker91 fun) (fanWalker91 arg) (\_ -> fanWalker91 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker46 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker62 body) Nothing (\inner -> fanWalker62 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 93; branches to fanWalker92, fanWalker47, fanWalker62.
+fanWalker93 :: Core.Term -> Maybe Core.Term
+fanWalker93 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker92 fun) (fanWalker92 arg) (\_ -> fanWalker92 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker47 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker62 body) Nothing (\inner -> fanWalker62 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 94; branches to fanWalker93, fanWalker47, fanWalker63.
+fanWalker94 :: Core.Term -> Maybe Core.Term
+fanWalker94 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker93 fun) (fanWalker93 arg) (\_ -> fanWalker93 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker47 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker63 body) Nothing (\inner -> fanWalker63 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 95; branches to fanWalker94, fanWalker48, fanWalker64.
+fanWalker95 :: Core.Term -> Maybe Core.Term
+fanWalker95 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker94 fun) (fanWalker94 arg) (\_ -> fanWalker94 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker48 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker64 body) Nothing (\inner -> fanWalker64 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 96; branches to fanWalker95, fanWalker48, fanWalker64.
+fanWalker96 :: Core.Term -> Maybe Core.Term
+fanWalker96 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker95 fun) (fanWalker95 arg) (\_ -> fanWalker95 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker48 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker64 body) Nothing (\inner -> fanWalker64 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 97; branches to fanWalker96, fanWalker49, fanWalker65.
+fanWalker97 :: Core.Term -> Maybe Core.Term
+fanWalker97 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker96 fun) (fanWalker96 arg) (\_ -> fanWalker96 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker49 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker65 body) Nothing (\inner -> fanWalker65 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 98; branches to fanWalker97, fanWalker49, fanWalker66.
+fanWalker98 :: Core.Term -> Maybe Core.Term
+fanWalker98 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker97 fun) (fanWalker97 arg) (\_ -> fanWalker97 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker49 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker66 body) Nothing (\inner -> fanWalker66 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Fan-out walker level 99; branches to fanWalker98, fanWalker50, fanWalker66.
+fanWalker99 :: Core.Term -> Maybe Core.Term
+fanWalker99 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (fanWalker98 fun) (fanWalker98 arg) (\_ -> fanWalker98 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (fanWalker50 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (fanWalker66 body) Nothing (\inner -> fanWalker66 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
diff --git a/src/main/haskell/Hydra/Bench/LinearChain.hs b/src/main/haskell/Hydra/Bench/LinearChain.hs
new file mode 100644
--- /dev/null
+++ b/src/main/haskell/Hydra/Bench/LinearChain.hs
@@ -0,0 +1,15214 @@
+-- Note: this is an automatically generated file. Do not edit.
+-- | Linear-chain inference benchmark. walkerK cases on _Term variants and recurses to walker(K-1) — depth-N type-resolution stress test.
+
+module Hydra.Bench.LinearChain where
+import qualified Hydra.Ast as Ast
+import qualified Hydra.Coders as Coders
+import qualified Hydra.Core as Core
+import qualified Hydra.Error.Checking as Checking
+import qualified Hydra.Error.Core as ErrorCore
+import qualified Hydra.Error.Packaging as ErrorPackaging
+import qualified Hydra.Errors as Errors
+import qualified Hydra.Graph as Graph
+import qualified Hydra.Json.Model as Model
+import qualified Hydra.Overlay.Haskell.Lib.Optionals as Optionals
+import qualified Hydra.Packaging as Packaging
+import qualified Hydra.Parsing as Parsing
+import qualified Hydra.Paths as Paths
+import qualified Hydra.Query as Query
+import qualified Hydra.Relational as Relational
+import qualified Hydra.Strip as Strip
+import qualified Hydra.Tabular as Tabular
+import qualified Hydra.Testing as Testing
+import qualified Hydra.Topology as Topology
+import qualified Hydra.Typed as Typed
+import qualified Hydra.Typing as Typing
+import qualified Hydra.Util as Util
+import qualified Hydra.Validation as Validation
+import qualified Hydra.Variants as Variants
+import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
+import qualified Data.Scientific as Sci
+-- | Term walker level 0; recurses to walker0.
+walker0 :: t0 -> Maybe t0
+walker0 t = Just t
+-- | Term walker level 1; recurses to walker0.
+walker1 :: Core.Term -> Maybe Core.Term
+walker1 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker0 fun) (walker0 arg) (\_ -> walker0 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker0 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker0 body) Nothing (\inner -> walker0 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 10; recurses to walker9.
+walker10 :: Core.Term -> Maybe Core.Term
+walker10 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker9 fun) (walker9 arg) (\_ -> walker9 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker9 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker9 body) Nothing (\inner -> walker9 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 100; recurses to walker99.
+walker100 :: Core.Term -> Maybe Core.Term
+walker100 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker99 fun) (walker99 arg) (\_ -> walker99 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker99 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker99 body) Nothing (\inner -> walker99 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 101; recurses to walker100.
+walker101 :: Core.Term -> Maybe Core.Term
+walker101 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker100 fun) (walker100 arg) (\_ -> walker100 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker100 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker100 body) Nothing (\inner -> walker100 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 102; recurses to walker101.
+walker102 :: Core.Term -> Maybe Core.Term
+walker102 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker101 fun) (walker101 arg) (\_ -> walker101 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker101 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker101 body) Nothing (\inner -> walker101 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 103; recurses to walker102.
+walker103 :: Core.Term -> Maybe Core.Term
+walker103 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker102 fun) (walker102 arg) (\_ -> walker102 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker102 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker102 body) Nothing (\inner -> walker102 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 104; recurses to walker103.
+walker104 :: Core.Term -> Maybe Core.Term
+walker104 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker103 fun) (walker103 arg) (\_ -> walker103 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker103 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker103 body) Nothing (\inner -> walker103 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 105; recurses to walker104.
+walker105 :: Core.Term -> Maybe Core.Term
+walker105 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker104 fun) (walker104 arg) (\_ -> walker104 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker104 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker104 body) Nothing (\inner -> walker104 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 106; recurses to walker105.
+walker106 :: Core.Term -> Maybe Core.Term
+walker106 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker105 fun) (walker105 arg) (\_ -> walker105 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker105 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker105 body) Nothing (\inner -> walker105 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 107; recurses to walker106.
+walker107 :: Core.Term -> Maybe Core.Term
+walker107 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker106 fun) (walker106 arg) (\_ -> walker106 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker106 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker106 body) Nothing (\inner -> walker106 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 108; recurses to walker107.
+walker108 :: Core.Term -> Maybe Core.Term
+walker108 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker107 fun) (walker107 arg) (\_ -> walker107 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker107 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker107 body) Nothing (\inner -> walker107 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 109; recurses to walker108.
+walker109 :: Core.Term -> Maybe Core.Term
+walker109 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker108 fun) (walker108 arg) (\_ -> walker108 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker108 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker108 body) Nothing (\inner -> walker108 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 11; recurses to walker10.
+walker11 :: Core.Term -> Maybe Core.Term
+walker11 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker10 fun) (walker10 arg) (\_ -> walker10 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker10 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker10 body) Nothing (\inner -> walker10 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 110; recurses to walker109.
+walker110 :: Core.Term -> Maybe Core.Term
+walker110 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker109 fun) (walker109 arg) (\_ -> walker109 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker109 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker109 body) Nothing (\inner -> walker109 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 111; recurses to walker110.
+walker111 :: Core.Term -> Maybe Core.Term
+walker111 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker110 fun) (walker110 arg) (\_ -> walker110 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker110 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker110 body) Nothing (\inner -> walker110 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 112; recurses to walker111.
+walker112 :: Core.Term -> Maybe Core.Term
+walker112 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker111 fun) (walker111 arg) (\_ -> walker111 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker111 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker111 body) Nothing (\inner -> walker111 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 113; recurses to walker112.
+walker113 :: Core.Term -> Maybe Core.Term
+walker113 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker112 fun) (walker112 arg) (\_ -> walker112 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker112 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker112 body) Nothing (\inner -> walker112 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 114; recurses to walker113.
+walker114 :: Core.Term -> Maybe Core.Term
+walker114 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker113 fun) (walker113 arg) (\_ -> walker113 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker113 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker113 body) Nothing (\inner -> walker113 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 115; recurses to walker114.
+walker115 :: Core.Term -> Maybe Core.Term
+walker115 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker114 fun) (walker114 arg) (\_ -> walker114 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker114 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker114 body) Nothing (\inner -> walker114 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 116; recurses to walker115.
+walker116 :: Core.Term -> Maybe Core.Term
+walker116 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker115 fun) (walker115 arg) (\_ -> walker115 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker115 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker115 body) Nothing (\inner -> walker115 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 117; recurses to walker116.
+walker117 :: Core.Term -> Maybe Core.Term
+walker117 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker116 fun) (walker116 arg) (\_ -> walker116 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker116 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker116 body) Nothing (\inner -> walker116 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 118; recurses to walker117.
+walker118 :: Core.Term -> Maybe Core.Term
+walker118 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker117 fun) (walker117 arg) (\_ -> walker117 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker117 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker117 body) Nothing (\inner -> walker117 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 119; recurses to walker118.
+walker119 :: Core.Term -> Maybe Core.Term
+walker119 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker118 fun) (walker118 arg) (\_ -> walker118 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker118 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker118 body) Nothing (\inner -> walker118 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 12; recurses to walker11.
+walker12 :: Core.Term -> Maybe Core.Term
+walker12 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker11 fun) (walker11 arg) (\_ -> walker11 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker11 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker11 body) Nothing (\inner -> walker11 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 120; recurses to walker119.
+walker120 :: Core.Term -> Maybe Core.Term
+walker120 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker119 fun) (walker119 arg) (\_ -> walker119 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker119 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker119 body) Nothing (\inner -> walker119 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 121; recurses to walker120.
+walker121 :: Core.Term -> Maybe Core.Term
+walker121 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker120 fun) (walker120 arg) (\_ -> walker120 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker120 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker120 body) Nothing (\inner -> walker120 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 122; recurses to walker121.
+walker122 :: Core.Term -> Maybe Core.Term
+walker122 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker121 fun) (walker121 arg) (\_ -> walker121 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker121 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker121 body) Nothing (\inner -> walker121 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 123; recurses to walker122.
+walker123 :: Core.Term -> Maybe Core.Term
+walker123 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker122 fun) (walker122 arg) (\_ -> walker122 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker122 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker122 body) Nothing (\inner -> walker122 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 124; recurses to walker123.
+walker124 :: Core.Term -> Maybe Core.Term
+walker124 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker123 fun) (walker123 arg) (\_ -> walker123 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker123 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker123 body) Nothing (\inner -> walker123 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 125; recurses to walker124.
+walker125 :: Core.Term -> Maybe Core.Term
+walker125 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker124 fun) (walker124 arg) (\_ -> walker124 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker124 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker124 body) Nothing (\inner -> walker124 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 126; recurses to walker125.
+walker126 :: Core.Term -> Maybe Core.Term
+walker126 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker125 fun) (walker125 arg) (\_ -> walker125 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker125 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker125 body) Nothing (\inner -> walker125 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 127; recurses to walker126.
+walker127 :: Core.Term -> Maybe Core.Term
+walker127 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker126 fun) (walker126 arg) (\_ -> walker126 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker126 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker126 body) Nothing (\inner -> walker126 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 128; recurses to walker127.
+walker128 :: Core.Term -> Maybe Core.Term
+walker128 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker127 fun) (walker127 arg) (\_ -> walker127 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker127 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker127 body) Nothing (\inner -> walker127 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 129; recurses to walker128.
+walker129 :: Core.Term -> Maybe Core.Term
+walker129 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker128 fun) (walker128 arg) (\_ -> walker128 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker128 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker128 body) Nothing (\inner -> walker128 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 13; recurses to walker12.
+walker13 :: Core.Term -> Maybe Core.Term
+walker13 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker12 fun) (walker12 arg) (\_ -> walker12 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker12 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker12 body) Nothing (\inner -> walker12 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 130; recurses to walker129.
+walker130 :: Core.Term -> Maybe Core.Term
+walker130 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker129 fun) (walker129 arg) (\_ -> walker129 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker129 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker129 body) Nothing (\inner -> walker129 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 131; recurses to walker130.
+walker131 :: Core.Term -> Maybe Core.Term
+walker131 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker130 fun) (walker130 arg) (\_ -> walker130 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker130 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker130 body) Nothing (\inner -> walker130 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 132; recurses to walker131.
+walker132 :: Core.Term -> Maybe Core.Term
+walker132 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker131 fun) (walker131 arg) (\_ -> walker131 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker131 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker131 body) Nothing (\inner -> walker131 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 133; recurses to walker132.
+walker133 :: Core.Term -> Maybe Core.Term
+walker133 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker132 fun) (walker132 arg) (\_ -> walker132 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker132 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker132 body) Nothing (\inner -> walker132 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 134; recurses to walker133.
+walker134 :: Core.Term -> Maybe Core.Term
+walker134 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker133 fun) (walker133 arg) (\_ -> walker133 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker133 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker133 body) Nothing (\inner -> walker133 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 135; recurses to walker134.
+walker135 :: Core.Term -> Maybe Core.Term
+walker135 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker134 fun) (walker134 arg) (\_ -> walker134 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker134 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker134 body) Nothing (\inner -> walker134 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 136; recurses to walker135.
+walker136 :: Core.Term -> Maybe Core.Term
+walker136 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker135 fun) (walker135 arg) (\_ -> walker135 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker135 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker135 body) Nothing (\inner -> walker135 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 137; recurses to walker136.
+walker137 :: Core.Term -> Maybe Core.Term
+walker137 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker136 fun) (walker136 arg) (\_ -> walker136 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker136 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker136 body) Nothing (\inner -> walker136 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 138; recurses to walker137.
+walker138 :: Core.Term -> Maybe Core.Term
+walker138 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker137 fun) (walker137 arg) (\_ -> walker137 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker137 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker137 body) Nothing (\inner -> walker137 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 139; recurses to walker138.
+walker139 :: Core.Term -> Maybe Core.Term
+walker139 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker138 fun) (walker138 arg) (\_ -> walker138 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker138 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker138 body) Nothing (\inner -> walker138 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 14; recurses to walker13.
+walker14 :: Core.Term -> Maybe Core.Term
+walker14 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker13 fun) (walker13 arg) (\_ -> walker13 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker13 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker13 body) Nothing (\inner -> walker13 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 140; recurses to walker139.
+walker140 :: Core.Term -> Maybe Core.Term
+walker140 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker139 fun) (walker139 arg) (\_ -> walker139 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker139 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker139 body) Nothing (\inner -> walker139 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 141; recurses to walker140.
+walker141 :: Core.Term -> Maybe Core.Term
+walker141 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker140 fun) (walker140 arg) (\_ -> walker140 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker140 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker140 body) Nothing (\inner -> walker140 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 142; recurses to walker141.
+walker142 :: Core.Term -> Maybe Core.Term
+walker142 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker141 fun) (walker141 arg) (\_ -> walker141 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker141 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker141 body) Nothing (\inner -> walker141 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 143; recurses to walker142.
+walker143 :: Core.Term -> Maybe Core.Term
+walker143 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker142 fun) (walker142 arg) (\_ -> walker142 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker142 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker142 body) Nothing (\inner -> walker142 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 144; recurses to walker143.
+walker144 :: Core.Term -> Maybe Core.Term
+walker144 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker143 fun) (walker143 arg) (\_ -> walker143 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker143 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker143 body) Nothing (\inner -> walker143 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 145; recurses to walker144.
+walker145 :: Core.Term -> Maybe Core.Term
+walker145 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker144 fun) (walker144 arg) (\_ -> walker144 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker144 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker144 body) Nothing (\inner -> walker144 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 146; recurses to walker145.
+walker146 :: Core.Term -> Maybe Core.Term
+walker146 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker145 fun) (walker145 arg) (\_ -> walker145 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker145 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker145 body) Nothing (\inner -> walker145 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 147; recurses to walker146.
+walker147 :: Core.Term -> Maybe Core.Term
+walker147 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker146 fun) (walker146 arg) (\_ -> walker146 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker146 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker146 body) Nothing (\inner -> walker146 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 148; recurses to walker147.
+walker148 :: Core.Term -> Maybe Core.Term
+walker148 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker147 fun) (walker147 arg) (\_ -> walker147 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker147 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker147 body) Nothing (\inner -> walker147 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 149; recurses to walker148.
+walker149 :: Core.Term -> Maybe Core.Term
+walker149 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker148 fun) (walker148 arg) (\_ -> walker148 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker148 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker148 body) Nothing (\inner -> walker148 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 15; recurses to walker14.
+walker15 :: Core.Term -> Maybe Core.Term
+walker15 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker14 fun) (walker14 arg) (\_ -> walker14 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker14 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker14 body) Nothing (\inner -> walker14 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 150; recurses to walker149.
+walker150 :: Core.Term -> Maybe Core.Term
+walker150 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker149 fun) (walker149 arg) (\_ -> walker149 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker149 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker149 body) Nothing (\inner -> walker149 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 151; recurses to walker150.
+walker151 :: Core.Term -> Maybe Core.Term
+walker151 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker150 fun) (walker150 arg) (\_ -> walker150 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker150 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker150 body) Nothing (\inner -> walker150 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 152; recurses to walker151.
+walker152 :: Core.Term -> Maybe Core.Term
+walker152 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker151 fun) (walker151 arg) (\_ -> walker151 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker151 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker151 body) Nothing (\inner -> walker151 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 153; recurses to walker152.
+walker153 :: Core.Term -> Maybe Core.Term
+walker153 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker152 fun) (walker152 arg) (\_ -> walker152 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker152 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker152 body) Nothing (\inner -> walker152 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 154; recurses to walker153.
+walker154 :: Core.Term -> Maybe Core.Term
+walker154 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker153 fun) (walker153 arg) (\_ -> walker153 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker153 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker153 body) Nothing (\inner -> walker153 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 155; recurses to walker154.
+walker155 :: Core.Term -> Maybe Core.Term
+walker155 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker154 fun) (walker154 arg) (\_ -> walker154 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker154 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker154 body) Nothing (\inner -> walker154 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 156; recurses to walker155.
+walker156 :: Core.Term -> Maybe Core.Term
+walker156 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker155 fun) (walker155 arg) (\_ -> walker155 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker155 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker155 body) Nothing (\inner -> walker155 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 157; recurses to walker156.
+walker157 :: Core.Term -> Maybe Core.Term
+walker157 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker156 fun) (walker156 arg) (\_ -> walker156 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker156 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker156 body) Nothing (\inner -> walker156 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 158; recurses to walker157.
+walker158 :: Core.Term -> Maybe Core.Term
+walker158 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker157 fun) (walker157 arg) (\_ -> walker157 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker157 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker157 body) Nothing (\inner -> walker157 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 159; recurses to walker158.
+walker159 :: Core.Term -> Maybe Core.Term
+walker159 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker158 fun) (walker158 arg) (\_ -> walker158 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker158 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker158 body) Nothing (\inner -> walker158 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 16; recurses to walker15.
+walker16 :: Core.Term -> Maybe Core.Term
+walker16 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker15 fun) (walker15 arg) (\_ -> walker15 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker15 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker15 body) Nothing (\inner -> walker15 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 160; recurses to walker159.
+walker160 :: Core.Term -> Maybe Core.Term
+walker160 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker159 fun) (walker159 arg) (\_ -> walker159 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker159 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker159 body) Nothing (\inner -> walker159 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 161; recurses to walker160.
+walker161 :: Core.Term -> Maybe Core.Term
+walker161 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker160 fun) (walker160 arg) (\_ -> walker160 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker160 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker160 body) Nothing (\inner -> walker160 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 162; recurses to walker161.
+walker162 :: Core.Term -> Maybe Core.Term
+walker162 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker161 fun) (walker161 arg) (\_ -> walker161 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker161 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker161 body) Nothing (\inner -> walker161 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 163; recurses to walker162.
+walker163 :: Core.Term -> Maybe Core.Term
+walker163 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker162 fun) (walker162 arg) (\_ -> walker162 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker162 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker162 body) Nothing (\inner -> walker162 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 164; recurses to walker163.
+walker164 :: Core.Term -> Maybe Core.Term
+walker164 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker163 fun) (walker163 arg) (\_ -> walker163 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker163 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker163 body) Nothing (\inner -> walker163 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 165; recurses to walker164.
+walker165 :: Core.Term -> Maybe Core.Term
+walker165 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker164 fun) (walker164 arg) (\_ -> walker164 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker164 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker164 body) Nothing (\inner -> walker164 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 166; recurses to walker165.
+walker166 :: Core.Term -> Maybe Core.Term
+walker166 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker165 fun) (walker165 arg) (\_ -> walker165 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker165 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker165 body) Nothing (\inner -> walker165 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 167; recurses to walker166.
+walker167 :: Core.Term -> Maybe Core.Term
+walker167 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker166 fun) (walker166 arg) (\_ -> walker166 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker166 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker166 body) Nothing (\inner -> walker166 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 168; recurses to walker167.
+walker168 :: Core.Term -> Maybe Core.Term
+walker168 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker167 fun) (walker167 arg) (\_ -> walker167 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker167 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker167 body) Nothing (\inner -> walker167 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 169; recurses to walker168.
+walker169 :: Core.Term -> Maybe Core.Term
+walker169 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker168 fun) (walker168 arg) (\_ -> walker168 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker168 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker168 body) Nothing (\inner -> walker168 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 17; recurses to walker16.
+walker17 :: Core.Term -> Maybe Core.Term
+walker17 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker16 fun) (walker16 arg) (\_ -> walker16 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker16 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker16 body) Nothing (\inner -> walker16 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 170; recurses to walker169.
+walker170 :: Core.Term -> Maybe Core.Term
+walker170 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker169 fun) (walker169 arg) (\_ -> walker169 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker169 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker169 body) Nothing (\inner -> walker169 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 171; recurses to walker170.
+walker171 :: Core.Term -> Maybe Core.Term
+walker171 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker170 fun) (walker170 arg) (\_ -> walker170 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker170 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker170 body) Nothing (\inner -> walker170 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 172; recurses to walker171.
+walker172 :: Core.Term -> Maybe Core.Term
+walker172 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker171 fun) (walker171 arg) (\_ -> walker171 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker171 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker171 body) Nothing (\inner -> walker171 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 173; recurses to walker172.
+walker173 :: Core.Term -> Maybe Core.Term
+walker173 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker172 fun) (walker172 arg) (\_ -> walker172 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker172 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker172 body) Nothing (\inner -> walker172 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 174; recurses to walker173.
+walker174 :: Core.Term -> Maybe Core.Term
+walker174 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker173 fun) (walker173 arg) (\_ -> walker173 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker173 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker173 body) Nothing (\inner -> walker173 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 175; recurses to walker174.
+walker175 :: Core.Term -> Maybe Core.Term
+walker175 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker174 fun) (walker174 arg) (\_ -> walker174 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker174 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker174 body) Nothing (\inner -> walker174 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 176; recurses to walker175.
+walker176 :: Core.Term -> Maybe Core.Term
+walker176 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker175 fun) (walker175 arg) (\_ -> walker175 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker175 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker175 body) Nothing (\inner -> walker175 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 177; recurses to walker176.
+walker177 :: Core.Term -> Maybe Core.Term
+walker177 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker176 fun) (walker176 arg) (\_ -> walker176 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker176 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker176 body) Nothing (\inner -> walker176 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 178; recurses to walker177.
+walker178 :: Core.Term -> Maybe Core.Term
+walker178 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker177 fun) (walker177 arg) (\_ -> walker177 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker177 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker177 body) Nothing (\inner -> walker177 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 179; recurses to walker178.
+walker179 :: Core.Term -> Maybe Core.Term
+walker179 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker178 fun) (walker178 arg) (\_ -> walker178 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker178 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker178 body) Nothing (\inner -> walker178 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 18; recurses to walker17.
+walker18 :: Core.Term -> Maybe Core.Term
+walker18 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker17 fun) (walker17 arg) (\_ -> walker17 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker17 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker17 body) Nothing (\inner -> walker17 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 180; recurses to walker179.
+walker180 :: Core.Term -> Maybe Core.Term
+walker180 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker179 fun) (walker179 arg) (\_ -> walker179 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker179 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker179 body) Nothing (\inner -> walker179 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 181; recurses to walker180.
+walker181 :: Core.Term -> Maybe Core.Term
+walker181 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker180 fun) (walker180 arg) (\_ -> walker180 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker180 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker180 body) Nothing (\inner -> walker180 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 182; recurses to walker181.
+walker182 :: Core.Term -> Maybe Core.Term
+walker182 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker181 fun) (walker181 arg) (\_ -> walker181 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker181 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker181 body) Nothing (\inner -> walker181 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 183; recurses to walker182.
+walker183 :: Core.Term -> Maybe Core.Term
+walker183 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker182 fun) (walker182 arg) (\_ -> walker182 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker182 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker182 body) Nothing (\inner -> walker182 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 184; recurses to walker183.
+walker184 :: Core.Term -> Maybe Core.Term
+walker184 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker183 fun) (walker183 arg) (\_ -> walker183 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker183 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker183 body) Nothing (\inner -> walker183 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 185; recurses to walker184.
+walker185 :: Core.Term -> Maybe Core.Term
+walker185 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker184 fun) (walker184 arg) (\_ -> walker184 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker184 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker184 body) Nothing (\inner -> walker184 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 186; recurses to walker185.
+walker186 :: Core.Term -> Maybe Core.Term
+walker186 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker185 fun) (walker185 arg) (\_ -> walker185 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker185 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker185 body) Nothing (\inner -> walker185 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 187; recurses to walker186.
+walker187 :: Core.Term -> Maybe Core.Term
+walker187 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker186 fun) (walker186 arg) (\_ -> walker186 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker186 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker186 body) Nothing (\inner -> walker186 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 188; recurses to walker187.
+walker188 :: Core.Term -> Maybe Core.Term
+walker188 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker187 fun) (walker187 arg) (\_ -> walker187 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker187 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker187 body) Nothing (\inner -> walker187 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 189; recurses to walker188.
+walker189 :: Core.Term -> Maybe Core.Term
+walker189 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker188 fun) (walker188 arg) (\_ -> walker188 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker188 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker188 body) Nothing (\inner -> walker188 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 19; recurses to walker18.
+walker19 :: Core.Term -> Maybe Core.Term
+walker19 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker18 fun) (walker18 arg) (\_ -> walker18 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker18 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker18 body) Nothing (\inner -> walker18 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 190; recurses to walker189.
+walker190 :: Core.Term -> Maybe Core.Term
+walker190 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker189 fun) (walker189 arg) (\_ -> walker189 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker189 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker189 body) Nothing (\inner -> walker189 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 191; recurses to walker190.
+walker191 :: Core.Term -> Maybe Core.Term
+walker191 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker190 fun) (walker190 arg) (\_ -> walker190 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker190 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker190 body) Nothing (\inner -> walker190 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 192; recurses to walker191.
+walker192 :: Core.Term -> Maybe Core.Term
+walker192 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker191 fun) (walker191 arg) (\_ -> walker191 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker191 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker191 body) Nothing (\inner -> walker191 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 193; recurses to walker192.
+walker193 :: Core.Term -> Maybe Core.Term
+walker193 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker192 fun) (walker192 arg) (\_ -> walker192 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker192 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker192 body) Nothing (\inner -> walker192 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 194; recurses to walker193.
+walker194 :: Core.Term -> Maybe Core.Term
+walker194 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker193 fun) (walker193 arg) (\_ -> walker193 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker193 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker193 body) Nothing (\inner -> walker193 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 195; recurses to walker194.
+walker195 :: Core.Term -> Maybe Core.Term
+walker195 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker194 fun) (walker194 arg) (\_ -> walker194 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker194 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker194 body) Nothing (\inner -> walker194 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 196; recurses to walker195.
+walker196 :: Core.Term -> Maybe Core.Term
+walker196 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker195 fun) (walker195 arg) (\_ -> walker195 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker195 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker195 body) Nothing (\inner -> walker195 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 197; recurses to walker196.
+walker197 :: Core.Term -> Maybe Core.Term
+walker197 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker196 fun) (walker196 arg) (\_ -> walker196 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker196 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker196 body) Nothing (\inner -> walker196 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 198; recurses to walker197.
+walker198 :: Core.Term -> Maybe Core.Term
+walker198 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker197 fun) (walker197 arg) (\_ -> walker197 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker197 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker197 body) Nothing (\inner -> walker197 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 199; recurses to walker198.
+walker199 :: Core.Term -> Maybe Core.Term
+walker199 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker198 fun) (walker198 arg) (\_ -> walker198 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker198 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker198 body) Nothing (\inner -> walker198 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 2; recurses to walker1.
+walker2 :: Core.Term -> Maybe Core.Term
+walker2 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker1 fun) (walker1 arg) (\_ -> walker1 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker1 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker1 body) Nothing (\inner -> walker1 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 20; recurses to walker19.
+walker20 :: Core.Term -> Maybe Core.Term
+walker20 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker19 fun) (walker19 arg) (\_ -> walker19 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker19 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker19 body) Nothing (\inner -> walker19 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 200; recurses to walker199.
+walker200 :: Core.Term -> Maybe Core.Term
+walker200 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker199 fun) (walker199 arg) (\_ -> walker199 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker199 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker199 body) Nothing (\inner -> walker199 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 201; recurses to walker200.
+walker201 :: Core.Term -> Maybe Core.Term
+walker201 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker200 fun) (walker200 arg) (\_ -> walker200 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker200 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker200 body) Nothing (\inner -> walker200 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 202; recurses to walker201.
+walker202 :: Core.Term -> Maybe Core.Term
+walker202 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker201 fun) (walker201 arg) (\_ -> walker201 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker201 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker201 body) Nothing (\inner -> walker201 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 203; recurses to walker202.
+walker203 :: Core.Term -> Maybe Core.Term
+walker203 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker202 fun) (walker202 arg) (\_ -> walker202 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker202 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker202 body) Nothing (\inner -> walker202 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 204; recurses to walker203.
+walker204 :: Core.Term -> Maybe Core.Term
+walker204 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker203 fun) (walker203 arg) (\_ -> walker203 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker203 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker203 body) Nothing (\inner -> walker203 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 205; recurses to walker204.
+walker205 :: Core.Term -> Maybe Core.Term
+walker205 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker204 fun) (walker204 arg) (\_ -> walker204 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker204 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker204 body) Nothing (\inner -> walker204 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 206; recurses to walker205.
+walker206 :: Core.Term -> Maybe Core.Term
+walker206 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker205 fun) (walker205 arg) (\_ -> walker205 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker205 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker205 body) Nothing (\inner -> walker205 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 207; recurses to walker206.
+walker207 :: Core.Term -> Maybe Core.Term
+walker207 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker206 fun) (walker206 arg) (\_ -> walker206 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker206 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker206 body) Nothing (\inner -> walker206 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 208; recurses to walker207.
+walker208 :: Core.Term -> Maybe Core.Term
+walker208 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker207 fun) (walker207 arg) (\_ -> walker207 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker207 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker207 body) Nothing (\inner -> walker207 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 209; recurses to walker208.
+walker209 :: Core.Term -> Maybe Core.Term
+walker209 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker208 fun) (walker208 arg) (\_ -> walker208 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker208 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker208 body) Nothing (\inner -> walker208 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 21; recurses to walker20.
+walker21 :: Core.Term -> Maybe Core.Term
+walker21 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker20 fun) (walker20 arg) (\_ -> walker20 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker20 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker20 body) Nothing (\inner -> walker20 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 210; recurses to walker209.
+walker210 :: Core.Term -> Maybe Core.Term
+walker210 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker209 fun) (walker209 arg) (\_ -> walker209 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker209 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker209 body) Nothing (\inner -> walker209 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 211; recurses to walker210.
+walker211 :: Core.Term -> Maybe Core.Term
+walker211 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker210 fun) (walker210 arg) (\_ -> walker210 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker210 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker210 body) Nothing (\inner -> walker210 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 212; recurses to walker211.
+walker212 :: Core.Term -> Maybe Core.Term
+walker212 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker211 fun) (walker211 arg) (\_ -> walker211 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker211 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker211 body) Nothing (\inner -> walker211 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 213; recurses to walker212.
+walker213 :: Core.Term -> Maybe Core.Term
+walker213 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker212 fun) (walker212 arg) (\_ -> walker212 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker212 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker212 body) Nothing (\inner -> walker212 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 214; recurses to walker213.
+walker214 :: Core.Term -> Maybe Core.Term
+walker214 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker213 fun) (walker213 arg) (\_ -> walker213 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker213 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker213 body) Nothing (\inner -> walker213 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 215; recurses to walker214.
+walker215 :: Core.Term -> Maybe Core.Term
+walker215 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker214 fun) (walker214 arg) (\_ -> walker214 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker214 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker214 body) Nothing (\inner -> walker214 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 216; recurses to walker215.
+walker216 :: Core.Term -> Maybe Core.Term
+walker216 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker215 fun) (walker215 arg) (\_ -> walker215 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker215 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker215 body) Nothing (\inner -> walker215 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 217; recurses to walker216.
+walker217 :: Core.Term -> Maybe Core.Term
+walker217 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker216 fun) (walker216 arg) (\_ -> walker216 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker216 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker216 body) Nothing (\inner -> walker216 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 218; recurses to walker217.
+walker218 :: Core.Term -> Maybe Core.Term
+walker218 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker217 fun) (walker217 arg) (\_ -> walker217 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker217 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker217 body) Nothing (\inner -> walker217 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 219; recurses to walker218.
+walker219 :: Core.Term -> Maybe Core.Term
+walker219 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker218 fun) (walker218 arg) (\_ -> walker218 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker218 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker218 body) Nothing (\inner -> walker218 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 22; recurses to walker21.
+walker22 :: Core.Term -> Maybe Core.Term
+walker22 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker21 fun) (walker21 arg) (\_ -> walker21 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker21 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker21 body) Nothing (\inner -> walker21 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 220; recurses to walker219.
+walker220 :: Core.Term -> Maybe Core.Term
+walker220 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker219 fun) (walker219 arg) (\_ -> walker219 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker219 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker219 body) Nothing (\inner -> walker219 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 221; recurses to walker220.
+walker221 :: Core.Term -> Maybe Core.Term
+walker221 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker220 fun) (walker220 arg) (\_ -> walker220 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker220 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker220 body) Nothing (\inner -> walker220 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 222; recurses to walker221.
+walker222 :: Core.Term -> Maybe Core.Term
+walker222 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker221 fun) (walker221 arg) (\_ -> walker221 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker221 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker221 body) Nothing (\inner -> walker221 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 223; recurses to walker222.
+walker223 :: Core.Term -> Maybe Core.Term
+walker223 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker222 fun) (walker222 arg) (\_ -> walker222 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker222 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker222 body) Nothing (\inner -> walker222 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 224; recurses to walker223.
+walker224 :: Core.Term -> Maybe Core.Term
+walker224 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker223 fun) (walker223 arg) (\_ -> walker223 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker223 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker223 body) Nothing (\inner -> walker223 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 225; recurses to walker224.
+walker225 :: Core.Term -> Maybe Core.Term
+walker225 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker224 fun) (walker224 arg) (\_ -> walker224 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker224 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker224 body) Nothing (\inner -> walker224 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 226; recurses to walker225.
+walker226 :: Core.Term -> Maybe Core.Term
+walker226 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker225 fun) (walker225 arg) (\_ -> walker225 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker225 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker225 body) Nothing (\inner -> walker225 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 227; recurses to walker226.
+walker227 :: Core.Term -> Maybe Core.Term
+walker227 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker226 fun) (walker226 arg) (\_ -> walker226 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker226 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker226 body) Nothing (\inner -> walker226 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 228; recurses to walker227.
+walker228 :: Core.Term -> Maybe Core.Term
+walker228 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker227 fun) (walker227 arg) (\_ -> walker227 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker227 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker227 body) Nothing (\inner -> walker227 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 229; recurses to walker228.
+walker229 :: Core.Term -> Maybe Core.Term
+walker229 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker228 fun) (walker228 arg) (\_ -> walker228 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker228 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker228 body) Nothing (\inner -> walker228 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 23; recurses to walker22.
+walker23 :: Core.Term -> Maybe Core.Term
+walker23 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker22 fun) (walker22 arg) (\_ -> walker22 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker22 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker22 body) Nothing (\inner -> walker22 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 230; recurses to walker229.
+walker230 :: Core.Term -> Maybe Core.Term
+walker230 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker229 fun) (walker229 arg) (\_ -> walker229 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker229 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker229 body) Nothing (\inner -> walker229 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 231; recurses to walker230.
+walker231 :: Core.Term -> Maybe Core.Term
+walker231 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker230 fun) (walker230 arg) (\_ -> walker230 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker230 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker230 body) Nothing (\inner -> walker230 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 232; recurses to walker231.
+walker232 :: Core.Term -> Maybe Core.Term
+walker232 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker231 fun) (walker231 arg) (\_ -> walker231 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker231 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker231 body) Nothing (\inner -> walker231 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 233; recurses to walker232.
+walker233 :: Core.Term -> Maybe Core.Term
+walker233 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker232 fun) (walker232 arg) (\_ -> walker232 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker232 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker232 body) Nothing (\inner -> walker232 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 234; recurses to walker233.
+walker234 :: Core.Term -> Maybe Core.Term
+walker234 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker233 fun) (walker233 arg) (\_ -> walker233 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker233 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker233 body) Nothing (\inner -> walker233 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 235; recurses to walker234.
+walker235 :: Core.Term -> Maybe Core.Term
+walker235 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker234 fun) (walker234 arg) (\_ -> walker234 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker234 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker234 body) Nothing (\inner -> walker234 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 236; recurses to walker235.
+walker236 :: Core.Term -> Maybe Core.Term
+walker236 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker235 fun) (walker235 arg) (\_ -> walker235 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker235 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker235 body) Nothing (\inner -> walker235 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 237; recurses to walker236.
+walker237 :: Core.Term -> Maybe Core.Term
+walker237 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker236 fun) (walker236 arg) (\_ -> walker236 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker236 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker236 body) Nothing (\inner -> walker236 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 238; recurses to walker237.
+walker238 :: Core.Term -> Maybe Core.Term
+walker238 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker237 fun) (walker237 arg) (\_ -> walker237 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker237 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker237 body) Nothing (\inner -> walker237 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 239; recurses to walker238.
+walker239 :: Core.Term -> Maybe Core.Term
+walker239 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker238 fun) (walker238 arg) (\_ -> walker238 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker238 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker238 body) Nothing (\inner -> walker238 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 24; recurses to walker23.
+walker24 :: Core.Term -> Maybe Core.Term
+walker24 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker23 fun) (walker23 arg) (\_ -> walker23 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker23 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker23 body) Nothing (\inner -> walker23 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 240; recurses to walker239.
+walker240 :: Core.Term -> Maybe Core.Term
+walker240 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker239 fun) (walker239 arg) (\_ -> walker239 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker239 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker239 body) Nothing (\inner -> walker239 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 241; recurses to walker240.
+walker241 :: Core.Term -> Maybe Core.Term
+walker241 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker240 fun) (walker240 arg) (\_ -> walker240 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker240 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker240 body) Nothing (\inner -> walker240 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 242; recurses to walker241.
+walker242 :: Core.Term -> Maybe Core.Term
+walker242 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker241 fun) (walker241 arg) (\_ -> walker241 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker241 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker241 body) Nothing (\inner -> walker241 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 243; recurses to walker242.
+walker243 :: Core.Term -> Maybe Core.Term
+walker243 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker242 fun) (walker242 arg) (\_ -> walker242 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker242 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker242 body) Nothing (\inner -> walker242 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 244; recurses to walker243.
+walker244 :: Core.Term -> Maybe Core.Term
+walker244 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker243 fun) (walker243 arg) (\_ -> walker243 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker243 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker243 body) Nothing (\inner -> walker243 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 245; recurses to walker244.
+walker245 :: Core.Term -> Maybe Core.Term
+walker245 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker244 fun) (walker244 arg) (\_ -> walker244 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker244 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker244 body) Nothing (\inner -> walker244 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 246; recurses to walker245.
+walker246 :: Core.Term -> Maybe Core.Term
+walker246 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker245 fun) (walker245 arg) (\_ -> walker245 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker245 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker245 body) Nothing (\inner -> walker245 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 247; recurses to walker246.
+walker247 :: Core.Term -> Maybe Core.Term
+walker247 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker246 fun) (walker246 arg) (\_ -> walker246 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker246 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker246 body) Nothing (\inner -> walker246 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 248; recurses to walker247.
+walker248 :: Core.Term -> Maybe Core.Term
+walker248 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker247 fun) (walker247 arg) (\_ -> walker247 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker247 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker247 body) Nothing (\inner -> walker247 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 249; recurses to walker248.
+walker249 :: Core.Term -> Maybe Core.Term
+walker249 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker248 fun) (walker248 arg) (\_ -> walker248 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker248 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker248 body) Nothing (\inner -> walker248 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 25; recurses to walker24.
+walker25 :: Core.Term -> Maybe Core.Term
+walker25 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker24 fun) (walker24 arg) (\_ -> walker24 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker24 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker24 body) Nothing (\inner -> walker24 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 250; recurses to walker249.
+walker250 :: Core.Term -> Maybe Core.Term
+walker250 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker249 fun) (walker249 arg) (\_ -> walker249 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker249 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker249 body) Nothing (\inner -> walker249 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 251; recurses to walker250.
+walker251 :: Core.Term -> Maybe Core.Term
+walker251 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker250 fun) (walker250 arg) (\_ -> walker250 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker250 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker250 body) Nothing (\inner -> walker250 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 252; recurses to walker251.
+walker252 :: Core.Term -> Maybe Core.Term
+walker252 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker251 fun) (walker251 arg) (\_ -> walker251 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker251 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker251 body) Nothing (\inner -> walker251 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 253; recurses to walker252.
+walker253 :: Core.Term -> Maybe Core.Term
+walker253 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker252 fun) (walker252 arg) (\_ -> walker252 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker252 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker252 body) Nothing (\inner -> walker252 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 254; recurses to walker253.
+walker254 :: Core.Term -> Maybe Core.Term
+walker254 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker253 fun) (walker253 arg) (\_ -> walker253 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker253 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker253 body) Nothing (\inner -> walker253 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 255; recurses to walker254.
+walker255 :: Core.Term -> Maybe Core.Term
+walker255 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker254 fun) (walker254 arg) (\_ -> walker254 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker254 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker254 body) Nothing (\inner -> walker254 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 256; recurses to walker255.
+walker256 :: Core.Term -> Maybe Core.Term
+walker256 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker255 fun) (walker255 arg) (\_ -> walker255 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker255 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker255 body) Nothing (\inner -> walker255 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 257; recurses to walker256.
+walker257 :: Core.Term -> Maybe Core.Term
+walker257 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker256 fun) (walker256 arg) (\_ -> walker256 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker256 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker256 body) Nothing (\inner -> walker256 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 258; recurses to walker257.
+walker258 :: Core.Term -> Maybe Core.Term
+walker258 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker257 fun) (walker257 arg) (\_ -> walker257 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker257 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker257 body) Nothing (\inner -> walker257 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 259; recurses to walker258.
+walker259 :: Core.Term -> Maybe Core.Term
+walker259 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker258 fun) (walker258 arg) (\_ -> walker258 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker258 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker258 body) Nothing (\inner -> walker258 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 26; recurses to walker25.
+walker26 :: Core.Term -> Maybe Core.Term
+walker26 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker25 fun) (walker25 arg) (\_ -> walker25 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker25 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker25 body) Nothing (\inner -> walker25 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 260; recurses to walker259.
+walker260 :: Core.Term -> Maybe Core.Term
+walker260 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker259 fun) (walker259 arg) (\_ -> walker259 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker259 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker259 body) Nothing (\inner -> walker259 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 261; recurses to walker260.
+walker261 :: Core.Term -> Maybe Core.Term
+walker261 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker260 fun) (walker260 arg) (\_ -> walker260 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker260 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker260 body) Nothing (\inner -> walker260 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 262; recurses to walker261.
+walker262 :: Core.Term -> Maybe Core.Term
+walker262 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker261 fun) (walker261 arg) (\_ -> walker261 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker261 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker261 body) Nothing (\inner -> walker261 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 263; recurses to walker262.
+walker263 :: Core.Term -> Maybe Core.Term
+walker263 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker262 fun) (walker262 arg) (\_ -> walker262 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker262 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker262 body) Nothing (\inner -> walker262 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 264; recurses to walker263.
+walker264 :: Core.Term -> Maybe Core.Term
+walker264 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker263 fun) (walker263 arg) (\_ -> walker263 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker263 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker263 body) Nothing (\inner -> walker263 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 265; recurses to walker264.
+walker265 :: Core.Term -> Maybe Core.Term
+walker265 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker264 fun) (walker264 arg) (\_ -> walker264 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker264 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker264 body) Nothing (\inner -> walker264 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 266; recurses to walker265.
+walker266 :: Core.Term -> Maybe Core.Term
+walker266 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker265 fun) (walker265 arg) (\_ -> walker265 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker265 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker265 body) Nothing (\inner -> walker265 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 267; recurses to walker266.
+walker267 :: Core.Term -> Maybe Core.Term
+walker267 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker266 fun) (walker266 arg) (\_ -> walker266 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker266 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker266 body) Nothing (\inner -> walker266 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 268; recurses to walker267.
+walker268 :: Core.Term -> Maybe Core.Term
+walker268 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker267 fun) (walker267 arg) (\_ -> walker267 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker267 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker267 body) Nothing (\inner -> walker267 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 269; recurses to walker268.
+walker269 :: Core.Term -> Maybe Core.Term
+walker269 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker268 fun) (walker268 arg) (\_ -> walker268 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker268 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker268 body) Nothing (\inner -> walker268 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 27; recurses to walker26.
+walker27 :: Core.Term -> Maybe Core.Term
+walker27 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker26 fun) (walker26 arg) (\_ -> walker26 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker26 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker26 body) Nothing (\inner -> walker26 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 270; recurses to walker269.
+walker270 :: Core.Term -> Maybe Core.Term
+walker270 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker269 fun) (walker269 arg) (\_ -> walker269 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker269 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker269 body) Nothing (\inner -> walker269 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 271; recurses to walker270.
+walker271 :: Core.Term -> Maybe Core.Term
+walker271 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker270 fun) (walker270 arg) (\_ -> walker270 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker270 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker270 body) Nothing (\inner -> walker270 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 272; recurses to walker271.
+walker272 :: Core.Term -> Maybe Core.Term
+walker272 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker271 fun) (walker271 arg) (\_ -> walker271 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker271 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker271 body) Nothing (\inner -> walker271 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 273; recurses to walker272.
+walker273 :: Core.Term -> Maybe Core.Term
+walker273 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker272 fun) (walker272 arg) (\_ -> walker272 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker272 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker272 body) Nothing (\inner -> walker272 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 274; recurses to walker273.
+walker274 :: Core.Term -> Maybe Core.Term
+walker274 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker273 fun) (walker273 arg) (\_ -> walker273 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker273 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker273 body) Nothing (\inner -> walker273 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 275; recurses to walker274.
+walker275 :: Core.Term -> Maybe Core.Term
+walker275 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker274 fun) (walker274 arg) (\_ -> walker274 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker274 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker274 body) Nothing (\inner -> walker274 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 276; recurses to walker275.
+walker276 :: Core.Term -> Maybe Core.Term
+walker276 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker275 fun) (walker275 arg) (\_ -> walker275 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker275 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker275 body) Nothing (\inner -> walker275 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 277; recurses to walker276.
+walker277 :: Core.Term -> Maybe Core.Term
+walker277 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker276 fun) (walker276 arg) (\_ -> walker276 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker276 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker276 body) Nothing (\inner -> walker276 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 278; recurses to walker277.
+walker278 :: Core.Term -> Maybe Core.Term
+walker278 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker277 fun) (walker277 arg) (\_ -> walker277 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker277 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker277 body) Nothing (\inner -> walker277 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 279; recurses to walker278.
+walker279 :: Core.Term -> Maybe Core.Term
+walker279 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker278 fun) (walker278 arg) (\_ -> walker278 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker278 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker278 body) Nothing (\inner -> walker278 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 28; recurses to walker27.
+walker28 :: Core.Term -> Maybe Core.Term
+walker28 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker27 fun) (walker27 arg) (\_ -> walker27 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker27 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker27 body) Nothing (\inner -> walker27 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 280; recurses to walker279.
+walker280 :: Core.Term -> Maybe Core.Term
+walker280 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker279 fun) (walker279 arg) (\_ -> walker279 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker279 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker279 body) Nothing (\inner -> walker279 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 281; recurses to walker280.
+walker281 :: Core.Term -> Maybe Core.Term
+walker281 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker280 fun) (walker280 arg) (\_ -> walker280 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker280 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker280 body) Nothing (\inner -> walker280 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 282; recurses to walker281.
+walker282 :: Core.Term -> Maybe Core.Term
+walker282 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker281 fun) (walker281 arg) (\_ -> walker281 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker281 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker281 body) Nothing (\inner -> walker281 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 283; recurses to walker282.
+walker283 :: Core.Term -> Maybe Core.Term
+walker283 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker282 fun) (walker282 arg) (\_ -> walker282 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker282 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker282 body) Nothing (\inner -> walker282 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 284; recurses to walker283.
+walker284 :: Core.Term -> Maybe Core.Term
+walker284 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker283 fun) (walker283 arg) (\_ -> walker283 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker283 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker283 body) Nothing (\inner -> walker283 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 285; recurses to walker284.
+walker285 :: Core.Term -> Maybe Core.Term
+walker285 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker284 fun) (walker284 arg) (\_ -> walker284 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker284 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker284 body) Nothing (\inner -> walker284 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 286; recurses to walker285.
+walker286 :: Core.Term -> Maybe Core.Term
+walker286 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker285 fun) (walker285 arg) (\_ -> walker285 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker285 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker285 body) Nothing (\inner -> walker285 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 287; recurses to walker286.
+walker287 :: Core.Term -> Maybe Core.Term
+walker287 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker286 fun) (walker286 arg) (\_ -> walker286 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker286 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker286 body) Nothing (\inner -> walker286 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 288; recurses to walker287.
+walker288 :: Core.Term -> Maybe Core.Term
+walker288 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker287 fun) (walker287 arg) (\_ -> walker287 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker287 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker287 body) Nothing (\inner -> walker287 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 289; recurses to walker288.
+walker289 :: Core.Term -> Maybe Core.Term
+walker289 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker288 fun) (walker288 arg) (\_ -> walker288 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker288 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker288 body) Nothing (\inner -> walker288 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 29; recurses to walker28.
+walker29 :: Core.Term -> Maybe Core.Term
+walker29 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker28 fun) (walker28 arg) (\_ -> walker28 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker28 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker28 body) Nothing (\inner -> walker28 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 290; recurses to walker289.
+walker290 :: Core.Term -> Maybe Core.Term
+walker290 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker289 fun) (walker289 arg) (\_ -> walker289 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker289 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker289 body) Nothing (\inner -> walker289 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 291; recurses to walker290.
+walker291 :: Core.Term -> Maybe Core.Term
+walker291 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker290 fun) (walker290 arg) (\_ -> walker290 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker290 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker290 body) Nothing (\inner -> walker290 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 292; recurses to walker291.
+walker292 :: Core.Term -> Maybe Core.Term
+walker292 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker291 fun) (walker291 arg) (\_ -> walker291 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker291 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker291 body) Nothing (\inner -> walker291 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 293; recurses to walker292.
+walker293 :: Core.Term -> Maybe Core.Term
+walker293 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker292 fun) (walker292 arg) (\_ -> walker292 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker292 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker292 body) Nothing (\inner -> walker292 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 294; recurses to walker293.
+walker294 :: Core.Term -> Maybe Core.Term
+walker294 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker293 fun) (walker293 arg) (\_ -> walker293 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker293 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker293 body) Nothing (\inner -> walker293 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 295; recurses to walker294.
+walker295 :: Core.Term -> Maybe Core.Term
+walker295 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker294 fun) (walker294 arg) (\_ -> walker294 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker294 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker294 body) Nothing (\inner -> walker294 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 296; recurses to walker295.
+walker296 :: Core.Term -> Maybe Core.Term
+walker296 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker295 fun) (walker295 arg) (\_ -> walker295 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker295 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker295 body) Nothing (\inner -> walker295 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 297; recurses to walker296.
+walker297 :: Core.Term -> Maybe Core.Term
+walker297 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker296 fun) (walker296 arg) (\_ -> walker296 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker296 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker296 body) Nothing (\inner -> walker296 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 298; recurses to walker297.
+walker298 :: Core.Term -> Maybe Core.Term
+walker298 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker297 fun) (walker297 arg) (\_ -> walker297 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker297 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker297 body) Nothing (\inner -> walker297 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 299; recurses to walker298.
+walker299 :: Core.Term -> Maybe Core.Term
+walker299 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker298 fun) (walker298 arg) (\_ -> walker298 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker298 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker298 body) Nothing (\inner -> walker298 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 3; recurses to walker2.
+walker3 :: Core.Term -> Maybe Core.Term
+walker3 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker2 fun) (walker2 arg) (\_ -> walker2 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker2 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker2 body) Nothing (\inner -> walker2 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 30; recurses to walker29.
+walker30 :: Core.Term -> Maybe Core.Term
+walker30 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker29 fun) (walker29 arg) (\_ -> walker29 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker29 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker29 body) Nothing (\inner -> walker29 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 300; recurses to walker299.
+walker300 :: Core.Term -> Maybe Core.Term
+walker300 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker299 fun) (walker299 arg) (\_ -> walker299 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker299 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker299 body) Nothing (\inner -> walker299 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 301; recurses to walker300.
+walker301 :: Core.Term -> Maybe Core.Term
+walker301 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker300 fun) (walker300 arg) (\_ -> walker300 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker300 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker300 body) Nothing (\inner -> walker300 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 302; recurses to walker301.
+walker302 :: Core.Term -> Maybe Core.Term
+walker302 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker301 fun) (walker301 arg) (\_ -> walker301 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker301 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker301 body) Nothing (\inner -> walker301 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 303; recurses to walker302.
+walker303 :: Core.Term -> Maybe Core.Term
+walker303 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker302 fun) (walker302 arg) (\_ -> walker302 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker302 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker302 body) Nothing (\inner -> walker302 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 304; recurses to walker303.
+walker304 :: Core.Term -> Maybe Core.Term
+walker304 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker303 fun) (walker303 arg) (\_ -> walker303 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker303 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker303 body) Nothing (\inner -> walker303 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 305; recurses to walker304.
+walker305 :: Core.Term -> Maybe Core.Term
+walker305 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker304 fun) (walker304 arg) (\_ -> walker304 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker304 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker304 body) Nothing (\inner -> walker304 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 306; recurses to walker305.
+walker306 :: Core.Term -> Maybe Core.Term
+walker306 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker305 fun) (walker305 arg) (\_ -> walker305 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker305 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker305 body) Nothing (\inner -> walker305 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 307; recurses to walker306.
+walker307 :: Core.Term -> Maybe Core.Term
+walker307 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker306 fun) (walker306 arg) (\_ -> walker306 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker306 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker306 body) Nothing (\inner -> walker306 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 308; recurses to walker307.
+walker308 :: Core.Term -> Maybe Core.Term
+walker308 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker307 fun) (walker307 arg) (\_ -> walker307 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker307 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker307 body) Nothing (\inner -> walker307 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 309; recurses to walker308.
+walker309 :: Core.Term -> Maybe Core.Term
+walker309 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker308 fun) (walker308 arg) (\_ -> walker308 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker308 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker308 body) Nothing (\inner -> walker308 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 31; recurses to walker30.
+walker31 :: Core.Term -> Maybe Core.Term
+walker31 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker30 fun) (walker30 arg) (\_ -> walker30 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker30 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker30 body) Nothing (\inner -> walker30 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 310; recurses to walker309.
+walker310 :: Core.Term -> Maybe Core.Term
+walker310 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker309 fun) (walker309 arg) (\_ -> walker309 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker309 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker309 body) Nothing (\inner -> walker309 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 311; recurses to walker310.
+walker311 :: Core.Term -> Maybe Core.Term
+walker311 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker310 fun) (walker310 arg) (\_ -> walker310 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker310 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker310 body) Nothing (\inner -> walker310 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 312; recurses to walker311.
+walker312 :: Core.Term -> Maybe Core.Term
+walker312 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker311 fun) (walker311 arg) (\_ -> walker311 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker311 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker311 body) Nothing (\inner -> walker311 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 313; recurses to walker312.
+walker313 :: Core.Term -> Maybe Core.Term
+walker313 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker312 fun) (walker312 arg) (\_ -> walker312 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker312 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker312 body) Nothing (\inner -> walker312 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 314; recurses to walker313.
+walker314 :: Core.Term -> Maybe Core.Term
+walker314 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker313 fun) (walker313 arg) (\_ -> walker313 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker313 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker313 body) Nothing (\inner -> walker313 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 315; recurses to walker314.
+walker315 :: Core.Term -> Maybe Core.Term
+walker315 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker314 fun) (walker314 arg) (\_ -> walker314 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker314 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker314 body) Nothing (\inner -> walker314 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 316; recurses to walker315.
+walker316 :: Core.Term -> Maybe Core.Term
+walker316 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker315 fun) (walker315 arg) (\_ -> walker315 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker315 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker315 body) Nothing (\inner -> walker315 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 317; recurses to walker316.
+walker317 :: Core.Term -> Maybe Core.Term
+walker317 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker316 fun) (walker316 arg) (\_ -> walker316 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker316 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker316 body) Nothing (\inner -> walker316 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 318; recurses to walker317.
+walker318 :: Core.Term -> Maybe Core.Term
+walker318 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker317 fun) (walker317 arg) (\_ -> walker317 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker317 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker317 body) Nothing (\inner -> walker317 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 319; recurses to walker318.
+walker319 :: Core.Term -> Maybe Core.Term
+walker319 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker318 fun) (walker318 arg) (\_ -> walker318 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker318 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker318 body) Nothing (\inner -> walker318 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 32; recurses to walker31.
+walker32 :: Core.Term -> Maybe Core.Term
+walker32 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker31 fun) (walker31 arg) (\_ -> walker31 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker31 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker31 body) Nothing (\inner -> walker31 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 320; recurses to walker319.
+walker320 :: Core.Term -> Maybe Core.Term
+walker320 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker319 fun) (walker319 arg) (\_ -> walker319 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker319 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker319 body) Nothing (\inner -> walker319 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 321; recurses to walker320.
+walker321 :: Core.Term -> Maybe Core.Term
+walker321 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker320 fun) (walker320 arg) (\_ -> walker320 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker320 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker320 body) Nothing (\inner -> walker320 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 322; recurses to walker321.
+walker322 :: Core.Term -> Maybe Core.Term
+walker322 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker321 fun) (walker321 arg) (\_ -> walker321 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker321 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker321 body) Nothing (\inner -> walker321 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 323; recurses to walker322.
+walker323 :: Core.Term -> Maybe Core.Term
+walker323 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker322 fun) (walker322 arg) (\_ -> walker322 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker322 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker322 body) Nothing (\inner -> walker322 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 324; recurses to walker323.
+walker324 :: Core.Term -> Maybe Core.Term
+walker324 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker323 fun) (walker323 arg) (\_ -> walker323 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker323 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker323 body) Nothing (\inner -> walker323 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 325; recurses to walker324.
+walker325 :: Core.Term -> Maybe Core.Term
+walker325 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker324 fun) (walker324 arg) (\_ -> walker324 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker324 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker324 body) Nothing (\inner -> walker324 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 326; recurses to walker325.
+walker326 :: Core.Term -> Maybe Core.Term
+walker326 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker325 fun) (walker325 arg) (\_ -> walker325 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker325 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker325 body) Nothing (\inner -> walker325 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 327; recurses to walker326.
+walker327 :: Core.Term -> Maybe Core.Term
+walker327 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker326 fun) (walker326 arg) (\_ -> walker326 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker326 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker326 body) Nothing (\inner -> walker326 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 328; recurses to walker327.
+walker328 :: Core.Term -> Maybe Core.Term
+walker328 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker327 fun) (walker327 arg) (\_ -> walker327 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker327 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker327 body) Nothing (\inner -> walker327 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 329; recurses to walker328.
+walker329 :: Core.Term -> Maybe Core.Term
+walker329 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker328 fun) (walker328 arg) (\_ -> walker328 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker328 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker328 body) Nothing (\inner -> walker328 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 33; recurses to walker32.
+walker33 :: Core.Term -> Maybe Core.Term
+walker33 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker32 fun) (walker32 arg) (\_ -> walker32 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker32 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker32 body) Nothing (\inner -> walker32 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 330; recurses to walker329.
+walker330 :: Core.Term -> Maybe Core.Term
+walker330 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker329 fun) (walker329 arg) (\_ -> walker329 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker329 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker329 body) Nothing (\inner -> walker329 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 331; recurses to walker330.
+walker331 :: Core.Term -> Maybe Core.Term
+walker331 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker330 fun) (walker330 arg) (\_ -> walker330 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker330 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker330 body) Nothing (\inner -> walker330 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 332; recurses to walker331.
+walker332 :: Core.Term -> Maybe Core.Term
+walker332 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker331 fun) (walker331 arg) (\_ -> walker331 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker331 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker331 body) Nothing (\inner -> walker331 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 333; recurses to walker332.
+walker333 :: Core.Term -> Maybe Core.Term
+walker333 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker332 fun) (walker332 arg) (\_ -> walker332 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker332 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker332 body) Nothing (\inner -> walker332 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 334; recurses to walker333.
+walker334 :: Core.Term -> Maybe Core.Term
+walker334 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker333 fun) (walker333 arg) (\_ -> walker333 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker333 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker333 body) Nothing (\inner -> walker333 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 335; recurses to walker334.
+walker335 :: Core.Term -> Maybe Core.Term
+walker335 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker334 fun) (walker334 arg) (\_ -> walker334 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker334 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker334 body) Nothing (\inner -> walker334 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 336; recurses to walker335.
+walker336 :: Core.Term -> Maybe Core.Term
+walker336 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker335 fun) (walker335 arg) (\_ -> walker335 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker335 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker335 body) Nothing (\inner -> walker335 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 337; recurses to walker336.
+walker337 :: Core.Term -> Maybe Core.Term
+walker337 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker336 fun) (walker336 arg) (\_ -> walker336 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker336 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker336 body) Nothing (\inner -> walker336 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 338; recurses to walker337.
+walker338 :: Core.Term -> Maybe Core.Term
+walker338 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker337 fun) (walker337 arg) (\_ -> walker337 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker337 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker337 body) Nothing (\inner -> walker337 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 339; recurses to walker338.
+walker339 :: Core.Term -> Maybe Core.Term
+walker339 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker338 fun) (walker338 arg) (\_ -> walker338 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker338 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker338 body) Nothing (\inner -> walker338 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 34; recurses to walker33.
+walker34 :: Core.Term -> Maybe Core.Term
+walker34 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker33 fun) (walker33 arg) (\_ -> walker33 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker33 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker33 body) Nothing (\inner -> walker33 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 340; recurses to walker339.
+walker340 :: Core.Term -> Maybe Core.Term
+walker340 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker339 fun) (walker339 arg) (\_ -> walker339 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker339 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker339 body) Nothing (\inner -> walker339 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 341; recurses to walker340.
+walker341 :: Core.Term -> Maybe Core.Term
+walker341 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker340 fun) (walker340 arg) (\_ -> walker340 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker340 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker340 body) Nothing (\inner -> walker340 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 342; recurses to walker341.
+walker342 :: Core.Term -> Maybe Core.Term
+walker342 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker341 fun) (walker341 arg) (\_ -> walker341 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker341 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker341 body) Nothing (\inner -> walker341 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 343; recurses to walker342.
+walker343 :: Core.Term -> Maybe Core.Term
+walker343 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker342 fun) (walker342 arg) (\_ -> walker342 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker342 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker342 body) Nothing (\inner -> walker342 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 344; recurses to walker343.
+walker344 :: Core.Term -> Maybe Core.Term
+walker344 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker343 fun) (walker343 arg) (\_ -> walker343 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker343 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker343 body) Nothing (\inner -> walker343 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 345; recurses to walker344.
+walker345 :: Core.Term -> Maybe Core.Term
+walker345 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker344 fun) (walker344 arg) (\_ -> walker344 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker344 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker344 body) Nothing (\inner -> walker344 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 346; recurses to walker345.
+walker346 :: Core.Term -> Maybe Core.Term
+walker346 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker345 fun) (walker345 arg) (\_ -> walker345 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker345 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker345 body) Nothing (\inner -> walker345 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 347; recurses to walker346.
+walker347 :: Core.Term -> Maybe Core.Term
+walker347 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker346 fun) (walker346 arg) (\_ -> walker346 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker346 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker346 body) Nothing (\inner -> walker346 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 348; recurses to walker347.
+walker348 :: Core.Term -> Maybe Core.Term
+walker348 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker347 fun) (walker347 arg) (\_ -> walker347 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker347 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker347 body) Nothing (\inner -> walker347 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 349; recurses to walker348.
+walker349 :: Core.Term -> Maybe Core.Term
+walker349 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker348 fun) (walker348 arg) (\_ -> walker348 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker348 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker348 body) Nothing (\inner -> walker348 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 35; recurses to walker34.
+walker35 :: Core.Term -> Maybe Core.Term
+walker35 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker34 fun) (walker34 arg) (\_ -> walker34 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker34 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker34 body) Nothing (\inner -> walker34 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 350; recurses to walker349.
+walker350 :: Core.Term -> Maybe Core.Term
+walker350 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker349 fun) (walker349 arg) (\_ -> walker349 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker349 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker349 body) Nothing (\inner -> walker349 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 351; recurses to walker350.
+walker351 :: Core.Term -> Maybe Core.Term
+walker351 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker350 fun) (walker350 arg) (\_ -> walker350 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker350 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker350 body) Nothing (\inner -> walker350 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 352; recurses to walker351.
+walker352 :: Core.Term -> Maybe Core.Term
+walker352 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker351 fun) (walker351 arg) (\_ -> walker351 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker351 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker351 body) Nothing (\inner -> walker351 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 353; recurses to walker352.
+walker353 :: Core.Term -> Maybe Core.Term
+walker353 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker352 fun) (walker352 arg) (\_ -> walker352 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker352 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker352 body) Nothing (\inner -> walker352 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 354; recurses to walker353.
+walker354 :: Core.Term -> Maybe Core.Term
+walker354 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker353 fun) (walker353 arg) (\_ -> walker353 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker353 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker353 body) Nothing (\inner -> walker353 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 355; recurses to walker354.
+walker355 :: Core.Term -> Maybe Core.Term
+walker355 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker354 fun) (walker354 arg) (\_ -> walker354 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker354 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker354 body) Nothing (\inner -> walker354 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 356; recurses to walker355.
+walker356 :: Core.Term -> Maybe Core.Term
+walker356 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker355 fun) (walker355 arg) (\_ -> walker355 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker355 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker355 body) Nothing (\inner -> walker355 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 357; recurses to walker356.
+walker357 :: Core.Term -> Maybe Core.Term
+walker357 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker356 fun) (walker356 arg) (\_ -> walker356 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker356 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker356 body) Nothing (\inner -> walker356 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 358; recurses to walker357.
+walker358 :: Core.Term -> Maybe Core.Term
+walker358 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker357 fun) (walker357 arg) (\_ -> walker357 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker357 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker357 body) Nothing (\inner -> walker357 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 359; recurses to walker358.
+walker359 :: Core.Term -> Maybe Core.Term
+walker359 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker358 fun) (walker358 arg) (\_ -> walker358 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker358 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker358 body) Nothing (\inner -> walker358 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 36; recurses to walker35.
+walker36 :: Core.Term -> Maybe Core.Term
+walker36 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker35 fun) (walker35 arg) (\_ -> walker35 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker35 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker35 body) Nothing (\inner -> walker35 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 360; recurses to walker359.
+walker360 :: Core.Term -> Maybe Core.Term
+walker360 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker359 fun) (walker359 arg) (\_ -> walker359 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker359 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker359 body) Nothing (\inner -> walker359 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 361; recurses to walker360.
+walker361 :: Core.Term -> Maybe Core.Term
+walker361 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker360 fun) (walker360 arg) (\_ -> walker360 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker360 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker360 body) Nothing (\inner -> walker360 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 362; recurses to walker361.
+walker362 :: Core.Term -> Maybe Core.Term
+walker362 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker361 fun) (walker361 arg) (\_ -> walker361 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker361 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker361 body) Nothing (\inner -> walker361 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 363; recurses to walker362.
+walker363 :: Core.Term -> Maybe Core.Term
+walker363 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker362 fun) (walker362 arg) (\_ -> walker362 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker362 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker362 body) Nothing (\inner -> walker362 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 364; recurses to walker363.
+walker364 :: Core.Term -> Maybe Core.Term
+walker364 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker363 fun) (walker363 arg) (\_ -> walker363 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker363 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker363 body) Nothing (\inner -> walker363 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 365; recurses to walker364.
+walker365 :: Core.Term -> Maybe Core.Term
+walker365 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker364 fun) (walker364 arg) (\_ -> walker364 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker364 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker364 body) Nothing (\inner -> walker364 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 366; recurses to walker365.
+walker366 :: Core.Term -> Maybe Core.Term
+walker366 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker365 fun) (walker365 arg) (\_ -> walker365 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker365 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker365 body) Nothing (\inner -> walker365 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 367; recurses to walker366.
+walker367 :: Core.Term -> Maybe Core.Term
+walker367 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker366 fun) (walker366 arg) (\_ -> walker366 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker366 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker366 body) Nothing (\inner -> walker366 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 368; recurses to walker367.
+walker368 :: Core.Term -> Maybe Core.Term
+walker368 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker367 fun) (walker367 arg) (\_ -> walker367 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker367 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker367 body) Nothing (\inner -> walker367 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 369; recurses to walker368.
+walker369 :: Core.Term -> Maybe Core.Term
+walker369 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker368 fun) (walker368 arg) (\_ -> walker368 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker368 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker368 body) Nothing (\inner -> walker368 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 37; recurses to walker36.
+walker37 :: Core.Term -> Maybe Core.Term
+walker37 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker36 fun) (walker36 arg) (\_ -> walker36 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker36 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker36 body) Nothing (\inner -> walker36 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 370; recurses to walker369.
+walker370 :: Core.Term -> Maybe Core.Term
+walker370 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker369 fun) (walker369 arg) (\_ -> walker369 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker369 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker369 body) Nothing (\inner -> walker369 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 371; recurses to walker370.
+walker371 :: Core.Term -> Maybe Core.Term
+walker371 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker370 fun) (walker370 arg) (\_ -> walker370 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker370 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker370 body) Nothing (\inner -> walker370 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 372; recurses to walker371.
+walker372 :: Core.Term -> Maybe Core.Term
+walker372 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker371 fun) (walker371 arg) (\_ -> walker371 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker371 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker371 body) Nothing (\inner -> walker371 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 373; recurses to walker372.
+walker373 :: Core.Term -> Maybe Core.Term
+walker373 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker372 fun) (walker372 arg) (\_ -> walker372 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker372 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker372 body) Nothing (\inner -> walker372 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 374; recurses to walker373.
+walker374 :: Core.Term -> Maybe Core.Term
+walker374 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker373 fun) (walker373 arg) (\_ -> walker373 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker373 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker373 body) Nothing (\inner -> walker373 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 375; recurses to walker374.
+walker375 :: Core.Term -> Maybe Core.Term
+walker375 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker374 fun) (walker374 arg) (\_ -> walker374 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker374 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker374 body) Nothing (\inner -> walker374 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 376; recurses to walker375.
+walker376 :: Core.Term -> Maybe Core.Term
+walker376 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker375 fun) (walker375 arg) (\_ -> walker375 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker375 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker375 body) Nothing (\inner -> walker375 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 377; recurses to walker376.
+walker377 :: Core.Term -> Maybe Core.Term
+walker377 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker376 fun) (walker376 arg) (\_ -> walker376 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker376 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker376 body) Nothing (\inner -> walker376 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 378; recurses to walker377.
+walker378 :: Core.Term -> Maybe Core.Term
+walker378 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker377 fun) (walker377 arg) (\_ -> walker377 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker377 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker377 body) Nothing (\inner -> walker377 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 379; recurses to walker378.
+walker379 :: Core.Term -> Maybe Core.Term
+walker379 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker378 fun) (walker378 arg) (\_ -> walker378 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker378 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker378 body) Nothing (\inner -> walker378 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 38; recurses to walker37.
+walker38 :: Core.Term -> Maybe Core.Term
+walker38 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker37 fun) (walker37 arg) (\_ -> walker37 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker37 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker37 body) Nothing (\inner -> walker37 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 380; recurses to walker379.
+walker380 :: Core.Term -> Maybe Core.Term
+walker380 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker379 fun) (walker379 arg) (\_ -> walker379 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker379 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker379 body) Nothing (\inner -> walker379 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 381; recurses to walker380.
+walker381 :: Core.Term -> Maybe Core.Term
+walker381 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker380 fun) (walker380 arg) (\_ -> walker380 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker380 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker380 body) Nothing (\inner -> walker380 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 382; recurses to walker381.
+walker382 :: Core.Term -> Maybe Core.Term
+walker382 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker381 fun) (walker381 arg) (\_ -> walker381 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker381 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker381 body) Nothing (\inner -> walker381 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 383; recurses to walker382.
+walker383 :: Core.Term -> Maybe Core.Term
+walker383 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker382 fun) (walker382 arg) (\_ -> walker382 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker382 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker382 body) Nothing (\inner -> walker382 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 384; recurses to walker383.
+walker384 :: Core.Term -> Maybe Core.Term
+walker384 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker383 fun) (walker383 arg) (\_ -> walker383 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker383 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker383 body) Nothing (\inner -> walker383 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 385; recurses to walker384.
+walker385 :: Core.Term -> Maybe Core.Term
+walker385 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker384 fun) (walker384 arg) (\_ -> walker384 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker384 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker384 body) Nothing (\inner -> walker384 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 386; recurses to walker385.
+walker386 :: Core.Term -> Maybe Core.Term
+walker386 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker385 fun) (walker385 arg) (\_ -> walker385 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker385 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker385 body) Nothing (\inner -> walker385 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 387; recurses to walker386.
+walker387 :: Core.Term -> Maybe Core.Term
+walker387 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker386 fun) (walker386 arg) (\_ -> walker386 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker386 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker386 body) Nothing (\inner -> walker386 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 388; recurses to walker387.
+walker388 :: Core.Term -> Maybe Core.Term
+walker388 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker387 fun) (walker387 arg) (\_ -> walker387 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker387 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker387 body) Nothing (\inner -> walker387 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 389; recurses to walker388.
+walker389 :: Core.Term -> Maybe Core.Term
+walker389 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker388 fun) (walker388 arg) (\_ -> walker388 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker388 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker388 body) Nothing (\inner -> walker388 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 39; recurses to walker38.
+walker39 :: Core.Term -> Maybe Core.Term
+walker39 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker38 fun) (walker38 arg) (\_ -> walker38 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker38 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker38 body) Nothing (\inner -> walker38 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 390; recurses to walker389.
+walker390 :: Core.Term -> Maybe Core.Term
+walker390 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker389 fun) (walker389 arg) (\_ -> walker389 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker389 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker389 body) Nothing (\inner -> walker389 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 391; recurses to walker390.
+walker391 :: Core.Term -> Maybe Core.Term
+walker391 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker390 fun) (walker390 arg) (\_ -> walker390 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker390 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker390 body) Nothing (\inner -> walker390 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 392; recurses to walker391.
+walker392 :: Core.Term -> Maybe Core.Term
+walker392 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker391 fun) (walker391 arg) (\_ -> walker391 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker391 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker391 body) Nothing (\inner -> walker391 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 393; recurses to walker392.
+walker393 :: Core.Term -> Maybe Core.Term
+walker393 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker392 fun) (walker392 arg) (\_ -> walker392 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker392 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker392 body) Nothing (\inner -> walker392 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 394; recurses to walker393.
+walker394 :: Core.Term -> Maybe Core.Term
+walker394 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker393 fun) (walker393 arg) (\_ -> walker393 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker393 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker393 body) Nothing (\inner -> walker393 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 395; recurses to walker394.
+walker395 :: Core.Term -> Maybe Core.Term
+walker395 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker394 fun) (walker394 arg) (\_ -> walker394 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker394 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker394 body) Nothing (\inner -> walker394 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 396; recurses to walker395.
+walker396 :: Core.Term -> Maybe Core.Term
+walker396 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker395 fun) (walker395 arg) (\_ -> walker395 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker395 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker395 body) Nothing (\inner -> walker395 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 397; recurses to walker396.
+walker397 :: Core.Term -> Maybe Core.Term
+walker397 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker396 fun) (walker396 arg) (\_ -> walker396 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker396 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker396 body) Nothing (\inner -> walker396 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 398; recurses to walker397.
+walker398 :: Core.Term -> Maybe Core.Term
+walker398 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker397 fun) (walker397 arg) (\_ -> walker397 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker397 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker397 body) Nothing (\inner -> walker397 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 399; recurses to walker398.
+walker399 :: Core.Term -> Maybe Core.Term
+walker399 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker398 fun) (walker398 arg) (\_ -> walker398 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker398 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker398 body) Nothing (\inner -> walker398 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 4; recurses to walker3.
+walker4 :: Core.Term -> Maybe Core.Term
+walker4 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker3 fun) (walker3 arg) (\_ -> walker3 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker3 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker3 body) Nothing (\inner -> walker3 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 40; recurses to walker39.
+walker40 :: Core.Term -> Maybe Core.Term
+walker40 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker39 fun) (walker39 arg) (\_ -> walker39 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker39 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker39 body) Nothing (\inner -> walker39 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 400; recurses to walker399.
+walker400 :: Core.Term -> Maybe Core.Term
+walker400 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker399 fun) (walker399 arg) (\_ -> walker399 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker399 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker399 body) Nothing (\inner -> walker399 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 401; recurses to walker400.
+walker401 :: Core.Term -> Maybe Core.Term
+walker401 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker400 fun) (walker400 arg) (\_ -> walker400 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker400 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker400 body) Nothing (\inner -> walker400 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 402; recurses to walker401.
+walker402 :: Core.Term -> Maybe Core.Term
+walker402 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker401 fun) (walker401 arg) (\_ -> walker401 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker401 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker401 body) Nothing (\inner -> walker401 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 403; recurses to walker402.
+walker403 :: Core.Term -> Maybe Core.Term
+walker403 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker402 fun) (walker402 arg) (\_ -> walker402 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker402 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker402 body) Nothing (\inner -> walker402 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 404; recurses to walker403.
+walker404 :: Core.Term -> Maybe Core.Term
+walker404 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker403 fun) (walker403 arg) (\_ -> walker403 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker403 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker403 body) Nothing (\inner -> walker403 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 405; recurses to walker404.
+walker405 :: Core.Term -> Maybe Core.Term
+walker405 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker404 fun) (walker404 arg) (\_ -> walker404 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker404 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker404 body) Nothing (\inner -> walker404 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 406; recurses to walker405.
+walker406 :: Core.Term -> Maybe Core.Term
+walker406 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker405 fun) (walker405 arg) (\_ -> walker405 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker405 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker405 body) Nothing (\inner -> walker405 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 407; recurses to walker406.
+walker407 :: Core.Term -> Maybe Core.Term
+walker407 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker406 fun) (walker406 arg) (\_ -> walker406 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker406 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker406 body) Nothing (\inner -> walker406 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 408; recurses to walker407.
+walker408 :: Core.Term -> Maybe Core.Term
+walker408 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker407 fun) (walker407 arg) (\_ -> walker407 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker407 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker407 body) Nothing (\inner -> walker407 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 409; recurses to walker408.
+walker409 :: Core.Term -> Maybe Core.Term
+walker409 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker408 fun) (walker408 arg) (\_ -> walker408 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker408 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker408 body) Nothing (\inner -> walker408 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 41; recurses to walker40.
+walker41 :: Core.Term -> Maybe Core.Term
+walker41 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker40 fun) (walker40 arg) (\_ -> walker40 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker40 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker40 body) Nothing (\inner -> walker40 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 410; recurses to walker409.
+walker410 :: Core.Term -> Maybe Core.Term
+walker410 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker409 fun) (walker409 arg) (\_ -> walker409 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker409 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker409 body) Nothing (\inner -> walker409 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 411; recurses to walker410.
+walker411 :: Core.Term -> Maybe Core.Term
+walker411 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker410 fun) (walker410 arg) (\_ -> walker410 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker410 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker410 body) Nothing (\inner -> walker410 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 412; recurses to walker411.
+walker412 :: Core.Term -> Maybe Core.Term
+walker412 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker411 fun) (walker411 arg) (\_ -> walker411 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker411 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker411 body) Nothing (\inner -> walker411 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 413; recurses to walker412.
+walker413 :: Core.Term -> Maybe Core.Term
+walker413 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker412 fun) (walker412 arg) (\_ -> walker412 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker412 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker412 body) Nothing (\inner -> walker412 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 414; recurses to walker413.
+walker414 :: Core.Term -> Maybe Core.Term
+walker414 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker413 fun) (walker413 arg) (\_ -> walker413 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker413 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker413 body) Nothing (\inner -> walker413 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 415; recurses to walker414.
+walker415 :: Core.Term -> Maybe Core.Term
+walker415 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker414 fun) (walker414 arg) (\_ -> walker414 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker414 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker414 body) Nothing (\inner -> walker414 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 416; recurses to walker415.
+walker416 :: Core.Term -> Maybe Core.Term
+walker416 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker415 fun) (walker415 arg) (\_ -> walker415 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker415 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker415 body) Nothing (\inner -> walker415 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 417; recurses to walker416.
+walker417 :: Core.Term -> Maybe Core.Term
+walker417 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker416 fun) (walker416 arg) (\_ -> walker416 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker416 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker416 body) Nothing (\inner -> walker416 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 418; recurses to walker417.
+walker418 :: Core.Term -> Maybe Core.Term
+walker418 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker417 fun) (walker417 arg) (\_ -> walker417 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker417 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker417 body) Nothing (\inner -> walker417 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 419; recurses to walker418.
+walker419 :: Core.Term -> Maybe Core.Term
+walker419 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker418 fun) (walker418 arg) (\_ -> walker418 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker418 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker418 body) Nothing (\inner -> walker418 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 42; recurses to walker41.
+walker42 :: Core.Term -> Maybe Core.Term
+walker42 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker41 fun) (walker41 arg) (\_ -> walker41 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker41 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker41 body) Nothing (\inner -> walker41 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 420; recurses to walker419.
+walker420 :: Core.Term -> Maybe Core.Term
+walker420 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker419 fun) (walker419 arg) (\_ -> walker419 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker419 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker419 body) Nothing (\inner -> walker419 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 421; recurses to walker420.
+walker421 :: Core.Term -> Maybe Core.Term
+walker421 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker420 fun) (walker420 arg) (\_ -> walker420 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker420 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker420 body) Nothing (\inner -> walker420 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 422; recurses to walker421.
+walker422 :: Core.Term -> Maybe Core.Term
+walker422 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker421 fun) (walker421 arg) (\_ -> walker421 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker421 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker421 body) Nothing (\inner -> walker421 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 423; recurses to walker422.
+walker423 :: Core.Term -> Maybe Core.Term
+walker423 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker422 fun) (walker422 arg) (\_ -> walker422 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker422 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker422 body) Nothing (\inner -> walker422 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 424; recurses to walker423.
+walker424 :: Core.Term -> Maybe Core.Term
+walker424 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker423 fun) (walker423 arg) (\_ -> walker423 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker423 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker423 body) Nothing (\inner -> walker423 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 425; recurses to walker424.
+walker425 :: Core.Term -> Maybe Core.Term
+walker425 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker424 fun) (walker424 arg) (\_ -> walker424 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker424 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker424 body) Nothing (\inner -> walker424 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 426; recurses to walker425.
+walker426 :: Core.Term -> Maybe Core.Term
+walker426 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker425 fun) (walker425 arg) (\_ -> walker425 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker425 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker425 body) Nothing (\inner -> walker425 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 427; recurses to walker426.
+walker427 :: Core.Term -> Maybe Core.Term
+walker427 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker426 fun) (walker426 arg) (\_ -> walker426 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker426 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker426 body) Nothing (\inner -> walker426 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 428; recurses to walker427.
+walker428 :: Core.Term -> Maybe Core.Term
+walker428 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker427 fun) (walker427 arg) (\_ -> walker427 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker427 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker427 body) Nothing (\inner -> walker427 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 429; recurses to walker428.
+walker429 :: Core.Term -> Maybe Core.Term
+walker429 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker428 fun) (walker428 arg) (\_ -> walker428 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker428 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker428 body) Nothing (\inner -> walker428 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 43; recurses to walker42.
+walker43 :: Core.Term -> Maybe Core.Term
+walker43 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker42 fun) (walker42 arg) (\_ -> walker42 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker42 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker42 body) Nothing (\inner -> walker42 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 430; recurses to walker429.
+walker430 :: Core.Term -> Maybe Core.Term
+walker430 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker429 fun) (walker429 arg) (\_ -> walker429 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker429 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker429 body) Nothing (\inner -> walker429 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 431; recurses to walker430.
+walker431 :: Core.Term -> Maybe Core.Term
+walker431 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker430 fun) (walker430 arg) (\_ -> walker430 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker430 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker430 body) Nothing (\inner -> walker430 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 432; recurses to walker431.
+walker432 :: Core.Term -> Maybe Core.Term
+walker432 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker431 fun) (walker431 arg) (\_ -> walker431 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker431 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker431 body) Nothing (\inner -> walker431 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 433; recurses to walker432.
+walker433 :: Core.Term -> Maybe Core.Term
+walker433 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker432 fun) (walker432 arg) (\_ -> walker432 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker432 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker432 body) Nothing (\inner -> walker432 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 434; recurses to walker433.
+walker434 :: Core.Term -> Maybe Core.Term
+walker434 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker433 fun) (walker433 arg) (\_ -> walker433 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker433 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker433 body) Nothing (\inner -> walker433 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 435; recurses to walker434.
+walker435 :: Core.Term -> Maybe Core.Term
+walker435 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker434 fun) (walker434 arg) (\_ -> walker434 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker434 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker434 body) Nothing (\inner -> walker434 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 436; recurses to walker435.
+walker436 :: Core.Term -> Maybe Core.Term
+walker436 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker435 fun) (walker435 arg) (\_ -> walker435 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker435 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker435 body) Nothing (\inner -> walker435 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 437; recurses to walker436.
+walker437 :: Core.Term -> Maybe Core.Term
+walker437 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker436 fun) (walker436 arg) (\_ -> walker436 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker436 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker436 body) Nothing (\inner -> walker436 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 438; recurses to walker437.
+walker438 :: Core.Term -> Maybe Core.Term
+walker438 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker437 fun) (walker437 arg) (\_ -> walker437 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker437 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker437 body) Nothing (\inner -> walker437 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 439; recurses to walker438.
+walker439 :: Core.Term -> Maybe Core.Term
+walker439 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker438 fun) (walker438 arg) (\_ -> walker438 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker438 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker438 body) Nothing (\inner -> walker438 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 44; recurses to walker43.
+walker44 :: Core.Term -> Maybe Core.Term
+walker44 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker43 fun) (walker43 arg) (\_ -> walker43 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker43 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker43 body) Nothing (\inner -> walker43 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 440; recurses to walker439.
+walker440 :: Core.Term -> Maybe Core.Term
+walker440 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker439 fun) (walker439 arg) (\_ -> walker439 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker439 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker439 body) Nothing (\inner -> walker439 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 441; recurses to walker440.
+walker441 :: Core.Term -> Maybe Core.Term
+walker441 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker440 fun) (walker440 arg) (\_ -> walker440 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker440 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker440 body) Nothing (\inner -> walker440 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 442; recurses to walker441.
+walker442 :: Core.Term -> Maybe Core.Term
+walker442 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker441 fun) (walker441 arg) (\_ -> walker441 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker441 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker441 body) Nothing (\inner -> walker441 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 443; recurses to walker442.
+walker443 :: Core.Term -> Maybe Core.Term
+walker443 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker442 fun) (walker442 arg) (\_ -> walker442 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker442 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker442 body) Nothing (\inner -> walker442 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 444; recurses to walker443.
+walker444 :: Core.Term -> Maybe Core.Term
+walker444 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker443 fun) (walker443 arg) (\_ -> walker443 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker443 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker443 body) Nothing (\inner -> walker443 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 445; recurses to walker444.
+walker445 :: Core.Term -> Maybe Core.Term
+walker445 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker444 fun) (walker444 arg) (\_ -> walker444 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker444 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker444 body) Nothing (\inner -> walker444 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 446; recurses to walker445.
+walker446 :: Core.Term -> Maybe Core.Term
+walker446 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker445 fun) (walker445 arg) (\_ -> walker445 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker445 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker445 body) Nothing (\inner -> walker445 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 447; recurses to walker446.
+walker447 :: Core.Term -> Maybe Core.Term
+walker447 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker446 fun) (walker446 arg) (\_ -> walker446 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker446 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker446 body) Nothing (\inner -> walker446 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 448; recurses to walker447.
+walker448 :: Core.Term -> Maybe Core.Term
+walker448 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker447 fun) (walker447 arg) (\_ -> walker447 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker447 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker447 body) Nothing (\inner -> walker447 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 449; recurses to walker448.
+walker449 :: Core.Term -> Maybe Core.Term
+walker449 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker448 fun) (walker448 arg) (\_ -> walker448 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker448 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker448 body) Nothing (\inner -> walker448 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 45; recurses to walker44.
+walker45 :: Core.Term -> Maybe Core.Term
+walker45 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker44 fun) (walker44 arg) (\_ -> walker44 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker44 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker44 body) Nothing (\inner -> walker44 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 450; recurses to walker449.
+walker450 :: Core.Term -> Maybe Core.Term
+walker450 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker449 fun) (walker449 arg) (\_ -> walker449 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker449 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker449 body) Nothing (\inner -> walker449 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 451; recurses to walker450.
+walker451 :: Core.Term -> Maybe Core.Term
+walker451 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker450 fun) (walker450 arg) (\_ -> walker450 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker450 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker450 body) Nothing (\inner -> walker450 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 452; recurses to walker451.
+walker452 :: Core.Term -> Maybe Core.Term
+walker452 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker451 fun) (walker451 arg) (\_ -> walker451 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker451 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker451 body) Nothing (\inner -> walker451 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 453; recurses to walker452.
+walker453 :: Core.Term -> Maybe Core.Term
+walker453 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker452 fun) (walker452 arg) (\_ -> walker452 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker452 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker452 body) Nothing (\inner -> walker452 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 454; recurses to walker453.
+walker454 :: Core.Term -> Maybe Core.Term
+walker454 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker453 fun) (walker453 arg) (\_ -> walker453 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker453 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker453 body) Nothing (\inner -> walker453 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 455; recurses to walker454.
+walker455 :: Core.Term -> Maybe Core.Term
+walker455 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker454 fun) (walker454 arg) (\_ -> walker454 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker454 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker454 body) Nothing (\inner -> walker454 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 456; recurses to walker455.
+walker456 :: Core.Term -> Maybe Core.Term
+walker456 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker455 fun) (walker455 arg) (\_ -> walker455 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker455 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker455 body) Nothing (\inner -> walker455 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 457; recurses to walker456.
+walker457 :: Core.Term -> Maybe Core.Term
+walker457 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker456 fun) (walker456 arg) (\_ -> walker456 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker456 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker456 body) Nothing (\inner -> walker456 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 458; recurses to walker457.
+walker458 :: Core.Term -> Maybe Core.Term
+walker458 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker457 fun) (walker457 arg) (\_ -> walker457 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker457 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker457 body) Nothing (\inner -> walker457 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 459; recurses to walker458.
+walker459 :: Core.Term -> Maybe Core.Term
+walker459 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker458 fun) (walker458 arg) (\_ -> walker458 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker458 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker458 body) Nothing (\inner -> walker458 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 46; recurses to walker45.
+walker46 :: Core.Term -> Maybe Core.Term
+walker46 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker45 fun) (walker45 arg) (\_ -> walker45 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker45 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker45 body) Nothing (\inner -> walker45 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 460; recurses to walker459.
+walker460 :: Core.Term -> Maybe Core.Term
+walker460 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker459 fun) (walker459 arg) (\_ -> walker459 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker459 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker459 body) Nothing (\inner -> walker459 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 461; recurses to walker460.
+walker461 :: Core.Term -> Maybe Core.Term
+walker461 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker460 fun) (walker460 arg) (\_ -> walker460 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker460 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker460 body) Nothing (\inner -> walker460 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 462; recurses to walker461.
+walker462 :: Core.Term -> Maybe Core.Term
+walker462 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker461 fun) (walker461 arg) (\_ -> walker461 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker461 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker461 body) Nothing (\inner -> walker461 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 463; recurses to walker462.
+walker463 :: Core.Term -> Maybe Core.Term
+walker463 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker462 fun) (walker462 arg) (\_ -> walker462 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker462 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker462 body) Nothing (\inner -> walker462 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 464; recurses to walker463.
+walker464 :: Core.Term -> Maybe Core.Term
+walker464 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker463 fun) (walker463 arg) (\_ -> walker463 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker463 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker463 body) Nothing (\inner -> walker463 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 465; recurses to walker464.
+walker465 :: Core.Term -> Maybe Core.Term
+walker465 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker464 fun) (walker464 arg) (\_ -> walker464 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker464 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker464 body) Nothing (\inner -> walker464 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 466; recurses to walker465.
+walker466 :: Core.Term -> Maybe Core.Term
+walker466 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker465 fun) (walker465 arg) (\_ -> walker465 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker465 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker465 body) Nothing (\inner -> walker465 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 467; recurses to walker466.
+walker467 :: Core.Term -> Maybe Core.Term
+walker467 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker466 fun) (walker466 arg) (\_ -> walker466 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker466 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker466 body) Nothing (\inner -> walker466 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 468; recurses to walker467.
+walker468 :: Core.Term -> Maybe Core.Term
+walker468 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker467 fun) (walker467 arg) (\_ -> walker467 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker467 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker467 body) Nothing (\inner -> walker467 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 469; recurses to walker468.
+walker469 :: Core.Term -> Maybe Core.Term
+walker469 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker468 fun) (walker468 arg) (\_ -> walker468 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker468 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker468 body) Nothing (\inner -> walker468 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 47; recurses to walker46.
+walker47 :: Core.Term -> Maybe Core.Term
+walker47 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker46 fun) (walker46 arg) (\_ -> walker46 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker46 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker46 body) Nothing (\inner -> walker46 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 470; recurses to walker469.
+walker470 :: Core.Term -> Maybe Core.Term
+walker470 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker469 fun) (walker469 arg) (\_ -> walker469 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker469 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker469 body) Nothing (\inner -> walker469 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 471; recurses to walker470.
+walker471 :: Core.Term -> Maybe Core.Term
+walker471 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker470 fun) (walker470 arg) (\_ -> walker470 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker470 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker470 body) Nothing (\inner -> walker470 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 472; recurses to walker471.
+walker472 :: Core.Term -> Maybe Core.Term
+walker472 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker471 fun) (walker471 arg) (\_ -> walker471 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker471 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker471 body) Nothing (\inner -> walker471 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 473; recurses to walker472.
+walker473 :: Core.Term -> Maybe Core.Term
+walker473 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker472 fun) (walker472 arg) (\_ -> walker472 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker472 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker472 body) Nothing (\inner -> walker472 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 474; recurses to walker473.
+walker474 :: Core.Term -> Maybe Core.Term
+walker474 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker473 fun) (walker473 arg) (\_ -> walker473 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker473 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker473 body) Nothing (\inner -> walker473 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 475; recurses to walker474.
+walker475 :: Core.Term -> Maybe Core.Term
+walker475 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker474 fun) (walker474 arg) (\_ -> walker474 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker474 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker474 body) Nothing (\inner -> walker474 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 476; recurses to walker475.
+walker476 :: Core.Term -> Maybe Core.Term
+walker476 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker475 fun) (walker475 arg) (\_ -> walker475 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker475 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker475 body) Nothing (\inner -> walker475 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 477; recurses to walker476.
+walker477 :: Core.Term -> Maybe Core.Term
+walker477 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker476 fun) (walker476 arg) (\_ -> walker476 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker476 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker476 body) Nothing (\inner -> walker476 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 478; recurses to walker477.
+walker478 :: Core.Term -> Maybe Core.Term
+walker478 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker477 fun) (walker477 arg) (\_ -> walker477 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker477 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker477 body) Nothing (\inner -> walker477 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 479; recurses to walker478.
+walker479 :: Core.Term -> Maybe Core.Term
+walker479 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker478 fun) (walker478 arg) (\_ -> walker478 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker478 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker478 body) Nothing (\inner -> walker478 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 48; recurses to walker47.
+walker48 :: Core.Term -> Maybe Core.Term
+walker48 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker47 fun) (walker47 arg) (\_ -> walker47 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker47 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker47 body) Nothing (\inner -> walker47 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 480; recurses to walker479.
+walker480 :: Core.Term -> Maybe Core.Term
+walker480 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker479 fun) (walker479 arg) (\_ -> walker479 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker479 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker479 body) Nothing (\inner -> walker479 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 481; recurses to walker480.
+walker481 :: Core.Term -> Maybe Core.Term
+walker481 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker480 fun) (walker480 arg) (\_ -> walker480 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker480 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker480 body) Nothing (\inner -> walker480 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 482; recurses to walker481.
+walker482 :: Core.Term -> Maybe Core.Term
+walker482 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker481 fun) (walker481 arg) (\_ -> walker481 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker481 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker481 body) Nothing (\inner -> walker481 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 483; recurses to walker482.
+walker483 :: Core.Term -> Maybe Core.Term
+walker483 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker482 fun) (walker482 arg) (\_ -> walker482 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker482 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker482 body) Nothing (\inner -> walker482 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 484; recurses to walker483.
+walker484 :: Core.Term -> Maybe Core.Term
+walker484 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker483 fun) (walker483 arg) (\_ -> walker483 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker483 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker483 body) Nothing (\inner -> walker483 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 485; recurses to walker484.
+walker485 :: Core.Term -> Maybe Core.Term
+walker485 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker484 fun) (walker484 arg) (\_ -> walker484 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker484 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker484 body) Nothing (\inner -> walker484 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 486; recurses to walker485.
+walker486 :: Core.Term -> Maybe Core.Term
+walker486 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker485 fun) (walker485 arg) (\_ -> walker485 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker485 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker485 body) Nothing (\inner -> walker485 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 487; recurses to walker486.
+walker487 :: Core.Term -> Maybe Core.Term
+walker487 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker486 fun) (walker486 arg) (\_ -> walker486 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker486 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker486 body) Nothing (\inner -> walker486 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 488; recurses to walker487.
+walker488 :: Core.Term -> Maybe Core.Term
+walker488 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker487 fun) (walker487 arg) (\_ -> walker487 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker487 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker487 body) Nothing (\inner -> walker487 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 489; recurses to walker488.
+walker489 :: Core.Term -> Maybe Core.Term
+walker489 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker488 fun) (walker488 arg) (\_ -> walker488 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker488 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker488 body) Nothing (\inner -> walker488 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 49; recurses to walker48.
+walker49 :: Core.Term -> Maybe Core.Term
+walker49 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker48 fun) (walker48 arg) (\_ -> walker48 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker48 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker48 body) Nothing (\inner -> walker48 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 490; recurses to walker489.
+walker490 :: Core.Term -> Maybe Core.Term
+walker490 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker489 fun) (walker489 arg) (\_ -> walker489 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker489 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker489 body) Nothing (\inner -> walker489 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 491; recurses to walker490.
+walker491 :: Core.Term -> Maybe Core.Term
+walker491 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker490 fun) (walker490 arg) (\_ -> walker490 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker490 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker490 body) Nothing (\inner -> walker490 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 492; recurses to walker491.
+walker492 :: Core.Term -> Maybe Core.Term
+walker492 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker491 fun) (walker491 arg) (\_ -> walker491 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker491 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker491 body) Nothing (\inner -> walker491 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 493; recurses to walker492.
+walker493 :: Core.Term -> Maybe Core.Term
+walker493 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker492 fun) (walker492 arg) (\_ -> walker492 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker492 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker492 body) Nothing (\inner -> walker492 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 494; recurses to walker493.
+walker494 :: Core.Term -> Maybe Core.Term
+walker494 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker493 fun) (walker493 arg) (\_ -> walker493 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker493 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker493 body) Nothing (\inner -> walker493 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 495; recurses to walker494.
+walker495 :: Core.Term -> Maybe Core.Term
+walker495 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker494 fun) (walker494 arg) (\_ -> walker494 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker494 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker494 body) Nothing (\inner -> walker494 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 496; recurses to walker495.
+walker496 :: Core.Term -> Maybe Core.Term
+walker496 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker495 fun) (walker495 arg) (\_ -> walker495 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker495 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker495 body) Nothing (\inner -> walker495 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 497; recurses to walker496.
+walker497 :: Core.Term -> Maybe Core.Term
+walker497 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker496 fun) (walker496 arg) (\_ -> walker496 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker496 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker496 body) Nothing (\inner -> walker496 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 498; recurses to walker497.
+walker498 :: Core.Term -> Maybe Core.Term
+walker498 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker497 fun) (walker497 arg) (\_ -> walker497 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker497 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker497 body) Nothing (\inner -> walker497 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 499; recurses to walker498.
+walker499 :: Core.Term -> Maybe Core.Term
+walker499 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker498 fun) (walker498 arg) (\_ -> walker498 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker498 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker498 body) Nothing (\inner -> walker498 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 5; recurses to walker4.
+walker5 :: Core.Term -> Maybe Core.Term
+walker5 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker4 fun) (walker4 arg) (\_ -> walker4 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker4 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker4 body) Nothing (\inner -> walker4 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 50; recurses to walker49.
+walker50 :: Core.Term -> Maybe Core.Term
+walker50 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker49 fun) (walker49 arg) (\_ -> walker49 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker49 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker49 body) Nothing (\inner -> walker49 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 500; recurses to walker499.
+walker500 :: Core.Term -> Maybe Core.Term
+walker500 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker499 fun) (walker499 arg) (\_ -> walker499 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker499 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker499 body) Nothing (\inner -> walker499 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 501; recurses to walker500.
+walker501 :: Core.Term -> Maybe Core.Term
+walker501 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker500 fun) (walker500 arg) (\_ -> walker500 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker500 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker500 body) Nothing (\inner -> walker500 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 502; recurses to walker501.
+walker502 :: Core.Term -> Maybe Core.Term
+walker502 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker501 fun) (walker501 arg) (\_ -> walker501 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker501 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker501 body) Nothing (\inner -> walker501 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 503; recurses to walker502.
+walker503 :: Core.Term -> Maybe Core.Term
+walker503 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker502 fun) (walker502 arg) (\_ -> walker502 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker502 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker502 body) Nothing (\inner -> walker502 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 504; recurses to walker503.
+walker504 :: Core.Term -> Maybe Core.Term
+walker504 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker503 fun) (walker503 arg) (\_ -> walker503 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker503 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker503 body) Nothing (\inner -> walker503 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 505; recurses to walker504.
+walker505 :: Core.Term -> Maybe Core.Term
+walker505 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker504 fun) (walker504 arg) (\_ -> walker504 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker504 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker504 body) Nothing (\inner -> walker504 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 506; recurses to walker505.
+walker506 :: Core.Term -> Maybe Core.Term
+walker506 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker505 fun) (walker505 arg) (\_ -> walker505 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker505 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker505 body) Nothing (\inner -> walker505 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 507; recurses to walker506.
+walker507 :: Core.Term -> Maybe Core.Term
+walker507 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker506 fun) (walker506 arg) (\_ -> walker506 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker506 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker506 body) Nothing (\inner -> walker506 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 508; recurses to walker507.
+walker508 :: Core.Term -> Maybe Core.Term
+walker508 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker507 fun) (walker507 arg) (\_ -> walker507 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker507 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker507 body) Nothing (\inner -> walker507 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 509; recurses to walker508.
+walker509 :: Core.Term -> Maybe Core.Term
+walker509 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker508 fun) (walker508 arg) (\_ -> walker508 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker508 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker508 body) Nothing (\inner -> walker508 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 51; recurses to walker50.
+walker51 :: Core.Term -> Maybe Core.Term
+walker51 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker50 fun) (walker50 arg) (\_ -> walker50 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker50 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker50 body) Nothing (\inner -> walker50 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 510; recurses to walker509.
+walker510 :: Core.Term -> Maybe Core.Term
+walker510 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker509 fun) (walker509 arg) (\_ -> walker509 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker509 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker509 body) Nothing (\inner -> walker509 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 511; recurses to walker510.
+walker511 :: Core.Term -> Maybe Core.Term
+walker511 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker510 fun) (walker510 arg) (\_ -> walker510 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker510 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker510 body) Nothing (\inner -> walker510 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 512; recurses to walker511.
+walker512 :: Core.Term -> Maybe Core.Term
+walker512 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker511 fun) (walker511 arg) (\_ -> walker511 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker511 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker511 body) Nothing (\inner -> walker511 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 513; recurses to walker512.
+walker513 :: Core.Term -> Maybe Core.Term
+walker513 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker512 fun) (walker512 arg) (\_ -> walker512 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker512 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker512 body) Nothing (\inner -> walker512 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 514; recurses to walker513.
+walker514 :: Core.Term -> Maybe Core.Term
+walker514 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker513 fun) (walker513 arg) (\_ -> walker513 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker513 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker513 body) Nothing (\inner -> walker513 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 515; recurses to walker514.
+walker515 :: Core.Term -> Maybe Core.Term
+walker515 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker514 fun) (walker514 arg) (\_ -> walker514 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker514 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker514 body) Nothing (\inner -> walker514 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 516; recurses to walker515.
+walker516 :: Core.Term -> Maybe Core.Term
+walker516 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker515 fun) (walker515 arg) (\_ -> walker515 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker515 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker515 body) Nothing (\inner -> walker515 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 517; recurses to walker516.
+walker517 :: Core.Term -> Maybe Core.Term
+walker517 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker516 fun) (walker516 arg) (\_ -> walker516 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker516 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker516 body) Nothing (\inner -> walker516 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 518; recurses to walker517.
+walker518 :: Core.Term -> Maybe Core.Term
+walker518 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker517 fun) (walker517 arg) (\_ -> walker517 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker517 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker517 body) Nothing (\inner -> walker517 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 519; recurses to walker518.
+walker519 :: Core.Term -> Maybe Core.Term
+walker519 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker518 fun) (walker518 arg) (\_ -> walker518 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker518 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker518 body) Nothing (\inner -> walker518 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 52; recurses to walker51.
+walker52 :: Core.Term -> Maybe Core.Term
+walker52 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker51 fun) (walker51 arg) (\_ -> walker51 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker51 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker51 body) Nothing (\inner -> walker51 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 520; recurses to walker519.
+walker520 :: Core.Term -> Maybe Core.Term
+walker520 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker519 fun) (walker519 arg) (\_ -> walker519 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker519 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker519 body) Nothing (\inner -> walker519 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 521; recurses to walker520.
+walker521 :: Core.Term -> Maybe Core.Term
+walker521 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker520 fun) (walker520 arg) (\_ -> walker520 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker520 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker520 body) Nothing (\inner -> walker520 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 522; recurses to walker521.
+walker522 :: Core.Term -> Maybe Core.Term
+walker522 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker521 fun) (walker521 arg) (\_ -> walker521 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker521 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker521 body) Nothing (\inner -> walker521 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 523; recurses to walker522.
+walker523 :: Core.Term -> Maybe Core.Term
+walker523 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker522 fun) (walker522 arg) (\_ -> walker522 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker522 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker522 body) Nothing (\inner -> walker522 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 524; recurses to walker523.
+walker524 :: Core.Term -> Maybe Core.Term
+walker524 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker523 fun) (walker523 arg) (\_ -> walker523 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker523 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker523 body) Nothing (\inner -> walker523 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 525; recurses to walker524.
+walker525 :: Core.Term -> Maybe Core.Term
+walker525 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker524 fun) (walker524 arg) (\_ -> walker524 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker524 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker524 body) Nothing (\inner -> walker524 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 526; recurses to walker525.
+walker526 :: Core.Term -> Maybe Core.Term
+walker526 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker525 fun) (walker525 arg) (\_ -> walker525 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker525 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker525 body) Nothing (\inner -> walker525 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 527; recurses to walker526.
+walker527 :: Core.Term -> Maybe Core.Term
+walker527 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker526 fun) (walker526 arg) (\_ -> walker526 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker526 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker526 body) Nothing (\inner -> walker526 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 528; recurses to walker527.
+walker528 :: Core.Term -> Maybe Core.Term
+walker528 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker527 fun) (walker527 arg) (\_ -> walker527 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker527 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker527 body) Nothing (\inner -> walker527 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 529; recurses to walker528.
+walker529 :: Core.Term -> Maybe Core.Term
+walker529 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker528 fun) (walker528 arg) (\_ -> walker528 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker528 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker528 body) Nothing (\inner -> walker528 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 53; recurses to walker52.
+walker53 :: Core.Term -> Maybe Core.Term
+walker53 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker52 fun) (walker52 arg) (\_ -> walker52 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker52 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker52 body) Nothing (\inner -> walker52 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 530; recurses to walker529.
+walker530 :: Core.Term -> Maybe Core.Term
+walker530 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker529 fun) (walker529 arg) (\_ -> walker529 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker529 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker529 body) Nothing (\inner -> walker529 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 531; recurses to walker530.
+walker531 :: Core.Term -> Maybe Core.Term
+walker531 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker530 fun) (walker530 arg) (\_ -> walker530 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker530 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker530 body) Nothing (\inner -> walker530 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 532; recurses to walker531.
+walker532 :: Core.Term -> Maybe Core.Term
+walker532 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker531 fun) (walker531 arg) (\_ -> walker531 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker531 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker531 body) Nothing (\inner -> walker531 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 533; recurses to walker532.
+walker533 :: Core.Term -> Maybe Core.Term
+walker533 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker532 fun) (walker532 arg) (\_ -> walker532 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker532 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker532 body) Nothing (\inner -> walker532 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 534; recurses to walker533.
+walker534 :: Core.Term -> Maybe Core.Term
+walker534 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker533 fun) (walker533 arg) (\_ -> walker533 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker533 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker533 body) Nothing (\inner -> walker533 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 535; recurses to walker534.
+walker535 :: Core.Term -> Maybe Core.Term
+walker535 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker534 fun) (walker534 arg) (\_ -> walker534 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker534 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker534 body) Nothing (\inner -> walker534 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 536; recurses to walker535.
+walker536 :: Core.Term -> Maybe Core.Term
+walker536 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker535 fun) (walker535 arg) (\_ -> walker535 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker535 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker535 body) Nothing (\inner -> walker535 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 537; recurses to walker536.
+walker537 :: Core.Term -> Maybe Core.Term
+walker537 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker536 fun) (walker536 arg) (\_ -> walker536 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker536 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker536 body) Nothing (\inner -> walker536 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 538; recurses to walker537.
+walker538 :: Core.Term -> Maybe Core.Term
+walker538 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker537 fun) (walker537 arg) (\_ -> walker537 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker537 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker537 body) Nothing (\inner -> walker537 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 539; recurses to walker538.
+walker539 :: Core.Term -> Maybe Core.Term
+walker539 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker538 fun) (walker538 arg) (\_ -> walker538 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker538 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker538 body) Nothing (\inner -> walker538 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 54; recurses to walker53.
+walker54 :: Core.Term -> Maybe Core.Term
+walker54 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker53 fun) (walker53 arg) (\_ -> walker53 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker53 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker53 body) Nothing (\inner -> walker53 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 540; recurses to walker539.
+walker540 :: Core.Term -> Maybe Core.Term
+walker540 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker539 fun) (walker539 arg) (\_ -> walker539 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker539 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker539 body) Nothing (\inner -> walker539 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 541; recurses to walker540.
+walker541 :: Core.Term -> Maybe Core.Term
+walker541 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker540 fun) (walker540 arg) (\_ -> walker540 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker540 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker540 body) Nothing (\inner -> walker540 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 542; recurses to walker541.
+walker542 :: Core.Term -> Maybe Core.Term
+walker542 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker541 fun) (walker541 arg) (\_ -> walker541 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker541 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker541 body) Nothing (\inner -> walker541 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 543; recurses to walker542.
+walker543 :: Core.Term -> Maybe Core.Term
+walker543 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker542 fun) (walker542 arg) (\_ -> walker542 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker542 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker542 body) Nothing (\inner -> walker542 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 544; recurses to walker543.
+walker544 :: Core.Term -> Maybe Core.Term
+walker544 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker543 fun) (walker543 arg) (\_ -> walker543 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker543 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker543 body) Nothing (\inner -> walker543 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 545; recurses to walker544.
+walker545 :: Core.Term -> Maybe Core.Term
+walker545 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker544 fun) (walker544 arg) (\_ -> walker544 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker544 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker544 body) Nothing (\inner -> walker544 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 546; recurses to walker545.
+walker546 :: Core.Term -> Maybe Core.Term
+walker546 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker545 fun) (walker545 arg) (\_ -> walker545 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker545 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker545 body) Nothing (\inner -> walker545 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 547; recurses to walker546.
+walker547 :: Core.Term -> Maybe Core.Term
+walker547 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker546 fun) (walker546 arg) (\_ -> walker546 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker546 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker546 body) Nothing (\inner -> walker546 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 548; recurses to walker547.
+walker548 :: Core.Term -> Maybe Core.Term
+walker548 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker547 fun) (walker547 arg) (\_ -> walker547 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker547 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker547 body) Nothing (\inner -> walker547 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 549; recurses to walker548.
+walker549 :: Core.Term -> Maybe Core.Term
+walker549 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker548 fun) (walker548 arg) (\_ -> walker548 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker548 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker548 body) Nothing (\inner -> walker548 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 55; recurses to walker54.
+walker55 :: Core.Term -> Maybe Core.Term
+walker55 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker54 fun) (walker54 arg) (\_ -> walker54 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker54 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker54 body) Nothing (\inner -> walker54 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 550; recurses to walker549.
+walker550 :: Core.Term -> Maybe Core.Term
+walker550 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker549 fun) (walker549 arg) (\_ -> walker549 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker549 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker549 body) Nothing (\inner -> walker549 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 551; recurses to walker550.
+walker551 :: Core.Term -> Maybe Core.Term
+walker551 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker550 fun) (walker550 arg) (\_ -> walker550 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker550 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker550 body) Nothing (\inner -> walker550 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 552; recurses to walker551.
+walker552 :: Core.Term -> Maybe Core.Term
+walker552 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker551 fun) (walker551 arg) (\_ -> walker551 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker551 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker551 body) Nothing (\inner -> walker551 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 553; recurses to walker552.
+walker553 :: Core.Term -> Maybe Core.Term
+walker553 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker552 fun) (walker552 arg) (\_ -> walker552 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker552 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker552 body) Nothing (\inner -> walker552 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 554; recurses to walker553.
+walker554 :: Core.Term -> Maybe Core.Term
+walker554 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker553 fun) (walker553 arg) (\_ -> walker553 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker553 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker553 body) Nothing (\inner -> walker553 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 555; recurses to walker554.
+walker555 :: Core.Term -> Maybe Core.Term
+walker555 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker554 fun) (walker554 arg) (\_ -> walker554 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker554 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker554 body) Nothing (\inner -> walker554 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 556; recurses to walker555.
+walker556 :: Core.Term -> Maybe Core.Term
+walker556 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker555 fun) (walker555 arg) (\_ -> walker555 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker555 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker555 body) Nothing (\inner -> walker555 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 557; recurses to walker556.
+walker557 :: Core.Term -> Maybe Core.Term
+walker557 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker556 fun) (walker556 arg) (\_ -> walker556 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker556 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker556 body) Nothing (\inner -> walker556 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 558; recurses to walker557.
+walker558 :: Core.Term -> Maybe Core.Term
+walker558 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker557 fun) (walker557 arg) (\_ -> walker557 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker557 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker557 body) Nothing (\inner -> walker557 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 559; recurses to walker558.
+walker559 :: Core.Term -> Maybe Core.Term
+walker559 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker558 fun) (walker558 arg) (\_ -> walker558 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker558 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker558 body) Nothing (\inner -> walker558 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 56; recurses to walker55.
+walker56 :: Core.Term -> Maybe Core.Term
+walker56 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker55 fun) (walker55 arg) (\_ -> walker55 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker55 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker55 body) Nothing (\inner -> walker55 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 560; recurses to walker559.
+walker560 :: Core.Term -> Maybe Core.Term
+walker560 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker559 fun) (walker559 arg) (\_ -> walker559 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker559 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker559 body) Nothing (\inner -> walker559 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 561; recurses to walker560.
+walker561 :: Core.Term -> Maybe Core.Term
+walker561 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker560 fun) (walker560 arg) (\_ -> walker560 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker560 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker560 body) Nothing (\inner -> walker560 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 562; recurses to walker561.
+walker562 :: Core.Term -> Maybe Core.Term
+walker562 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker561 fun) (walker561 arg) (\_ -> walker561 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker561 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker561 body) Nothing (\inner -> walker561 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 563; recurses to walker562.
+walker563 :: Core.Term -> Maybe Core.Term
+walker563 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker562 fun) (walker562 arg) (\_ -> walker562 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker562 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker562 body) Nothing (\inner -> walker562 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 564; recurses to walker563.
+walker564 :: Core.Term -> Maybe Core.Term
+walker564 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker563 fun) (walker563 arg) (\_ -> walker563 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker563 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker563 body) Nothing (\inner -> walker563 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 565; recurses to walker564.
+walker565 :: Core.Term -> Maybe Core.Term
+walker565 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker564 fun) (walker564 arg) (\_ -> walker564 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker564 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker564 body) Nothing (\inner -> walker564 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 566; recurses to walker565.
+walker566 :: Core.Term -> Maybe Core.Term
+walker566 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker565 fun) (walker565 arg) (\_ -> walker565 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker565 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker565 body) Nothing (\inner -> walker565 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 567; recurses to walker566.
+walker567 :: Core.Term -> Maybe Core.Term
+walker567 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker566 fun) (walker566 arg) (\_ -> walker566 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker566 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker566 body) Nothing (\inner -> walker566 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 568; recurses to walker567.
+walker568 :: Core.Term -> Maybe Core.Term
+walker568 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker567 fun) (walker567 arg) (\_ -> walker567 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker567 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker567 body) Nothing (\inner -> walker567 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 569; recurses to walker568.
+walker569 :: Core.Term -> Maybe Core.Term
+walker569 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker568 fun) (walker568 arg) (\_ -> walker568 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker568 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker568 body) Nothing (\inner -> walker568 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 57; recurses to walker56.
+walker57 :: Core.Term -> Maybe Core.Term
+walker57 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker56 fun) (walker56 arg) (\_ -> walker56 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker56 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker56 body) Nothing (\inner -> walker56 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 570; recurses to walker569.
+walker570 :: Core.Term -> Maybe Core.Term
+walker570 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker569 fun) (walker569 arg) (\_ -> walker569 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker569 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker569 body) Nothing (\inner -> walker569 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 571; recurses to walker570.
+walker571 :: Core.Term -> Maybe Core.Term
+walker571 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker570 fun) (walker570 arg) (\_ -> walker570 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker570 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker570 body) Nothing (\inner -> walker570 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 572; recurses to walker571.
+walker572 :: Core.Term -> Maybe Core.Term
+walker572 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker571 fun) (walker571 arg) (\_ -> walker571 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker571 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker571 body) Nothing (\inner -> walker571 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 573; recurses to walker572.
+walker573 :: Core.Term -> Maybe Core.Term
+walker573 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker572 fun) (walker572 arg) (\_ -> walker572 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker572 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker572 body) Nothing (\inner -> walker572 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 574; recurses to walker573.
+walker574 :: Core.Term -> Maybe Core.Term
+walker574 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker573 fun) (walker573 arg) (\_ -> walker573 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker573 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker573 body) Nothing (\inner -> walker573 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 575; recurses to walker574.
+walker575 :: Core.Term -> Maybe Core.Term
+walker575 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker574 fun) (walker574 arg) (\_ -> walker574 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker574 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker574 body) Nothing (\inner -> walker574 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 576; recurses to walker575.
+walker576 :: Core.Term -> Maybe Core.Term
+walker576 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker575 fun) (walker575 arg) (\_ -> walker575 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker575 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker575 body) Nothing (\inner -> walker575 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 577; recurses to walker576.
+walker577 :: Core.Term -> Maybe Core.Term
+walker577 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker576 fun) (walker576 arg) (\_ -> walker576 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker576 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker576 body) Nothing (\inner -> walker576 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 578; recurses to walker577.
+walker578 :: Core.Term -> Maybe Core.Term
+walker578 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker577 fun) (walker577 arg) (\_ -> walker577 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker577 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker577 body) Nothing (\inner -> walker577 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 579; recurses to walker578.
+walker579 :: Core.Term -> Maybe Core.Term
+walker579 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker578 fun) (walker578 arg) (\_ -> walker578 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker578 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker578 body) Nothing (\inner -> walker578 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 58; recurses to walker57.
+walker58 :: Core.Term -> Maybe Core.Term
+walker58 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker57 fun) (walker57 arg) (\_ -> walker57 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker57 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker57 body) Nothing (\inner -> walker57 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 580; recurses to walker579.
+walker580 :: Core.Term -> Maybe Core.Term
+walker580 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker579 fun) (walker579 arg) (\_ -> walker579 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker579 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker579 body) Nothing (\inner -> walker579 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 581; recurses to walker580.
+walker581 :: Core.Term -> Maybe Core.Term
+walker581 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker580 fun) (walker580 arg) (\_ -> walker580 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker580 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker580 body) Nothing (\inner -> walker580 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 582; recurses to walker581.
+walker582 :: Core.Term -> Maybe Core.Term
+walker582 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker581 fun) (walker581 arg) (\_ -> walker581 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker581 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker581 body) Nothing (\inner -> walker581 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 583; recurses to walker582.
+walker583 :: Core.Term -> Maybe Core.Term
+walker583 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker582 fun) (walker582 arg) (\_ -> walker582 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker582 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker582 body) Nothing (\inner -> walker582 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 584; recurses to walker583.
+walker584 :: Core.Term -> Maybe Core.Term
+walker584 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker583 fun) (walker583 arg) (\_ -> walker583 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker583 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker583 body) Nothing (\inner -> walker583 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 585; recurses to walker584.
+walker585 :: Core.Term -> Maybe Core.Term
+walker585 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker584 fun) (walker584 arg) (\_ -> walker584 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker584 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker584 body) Nothing (\inner -> walker584 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 586; recurses to walker585.
+walker586 :: Core.Term -> Maybe Core.Term
+walker586 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker585 fun) (walker585 arg) (\_ -> walker585 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker585 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker585 body) Nothing (\inner -> walker585 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 587; recurses to walker586.
+walker587 :: Core.Term -> Maybe Core.Term
+walker587 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker586 fun) (walker586 arg) (\_ -> walker586 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker586 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker586 body) Nothing (\inner -> walker586 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 588; recurses to walker587.
+walker588 :: Core.Term -> Maybe Core.Term
+walker588 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker587 fun) (walker587 arg) (\_ -> walker587 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker587 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker587 body) Nothing (\inner -> walker587 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 589; recurses to walker588.
+walker589 :: Core.Term -> Maybe Core.Term
+walker589 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker588 fun) (walker588 arg) (\_ -> walker588 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker588 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker588 body) Nothing (\inner -> walker588 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 59; recurses to walker58.
+walker59 :: Core.Term -> Maybe Core.Term
+walker59 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker58 fun) (walker58 arg) (\_ -> walker58 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker58 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker58 body) Nothing (\inner -> walker58 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 590; recurses to walker589.
+walker590 :: Core.Term -> Maybe Core.Term
+walker590 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker589 fun) (walker589 arg) (\_ -> walker589 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker589 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker589 body) Nothing (\inner -> walker589 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 591; recurses to walker590.
+walker591 :: Core.Term -> Maybe Core.Term
+walker591 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker590 fun) (walker590 arg) (\_ -> walker590 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker590 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker590 body) Nothing (\inner -> walker590 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 592; recurses to walker591.
+walker592 :: Core.Term -> Maybe Core.Term
+walker592 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker591 fun) (walker591 arg) (\_ -> walker591 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker591 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker591 body) Nothing (\inner -> walker591 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 593; recurses to walker592.
+walker593 :: Core.Term -> Maybe Core.Term
+walker593 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker592 fun) (walker592 arg) (\_ -> walker592 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker592 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker592 body) Nothing (\inner -> walker592 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 594; recurses to walker593.
+walker594 :: Core.Term -> Maybe Core.Term
+walker594 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker593 fun) (walker593 arg) (\_ -> walker593 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker593 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker593 body) Nothing (\inner -> walker593 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 595; recurses to walker594.
+walker595 :: Core.Term -> Maybe Core.Term
+walker595 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker594 fun) (walker594 arg) (\_ -> walker594 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker594 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker594 body) Nothing (\inner -> walker594 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 596; recurses to walker595.
+walker596 :: Core.Term -> Maybe Core.Term
+walker596 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker595 fun) (walker595 arg) (\_ -> walker595 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker595 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker595 body) Nothing (\inner -> walker595 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 597; recurses to walker596.
+walker597 :: Core.Term -> Maybe Core.Term
+walker597 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker596 fun) (walker596 arg) (\_ -> walker596 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker596 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker596 body) Nothing (\inner -> walker596 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 598; recurses to walker597.
+walker598 :: Core.Term -> Maybe Core.Term
+walker598 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker597 fun) (walker597 arg) (\_ -> walker597 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker597 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker597 body) Nothing (\inner -> walker597 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 599; recurses to walker598.
+walker599 :: Core.Term -> Maybe Core.Term
+walker599 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker598 fun) (walker598 arg) (\_ -> walker598 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker598 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker598 body) Nothing (\inner -> walker598 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 6; recurses to walker5.
+walker6 :: Core.Term -> Maybe Core.Term
+walker6 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker5 fun) (walker5 arg) (\_ -> walker5 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker5 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker5 body) Nothing (\inner -> walker5 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 60; recurses to walker59.
+walker60 :: Core.Term -> Maybe Core.Term
+walker60 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker59 fun) (walker59 arg) (\_ -> walker59 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker59 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker59 body) Nothing (\inner -> walker59 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 600; recurses to walker599.
+walker600 :: Core.Term -> Maybe Core.Term
+walker600 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker599 fun) (walker599 arg) (\_ -> walker599 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker599 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker599 body) Nothing (\inner -> walker599 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 601; recurses to walker600.
+walker601 :: Core.Term -> Maybe Core.Term
+walker601 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker600 fun) (walker600 arg) (\_ -> walker600 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker600 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker600 body) Nothing (\inner -> walker600 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 602; recurses to walker601.
+walker602 :: Core.Term -> Maybe Core.Term
+walker602 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker601 fun) (walker601 arg) (\_ -> walker601 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker601 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker601 body) Nothing (\inner -> walker601 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 603; recurses to walker602.
+walker603 :: Core.Term -> Maybe Core.Term
+walker603 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker602 fun) (walker602 arg) (\_ -> walker602 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker602 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker602 body) Nothing (\inner -> walker602 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 604; recurses to walker603.
+walker604 :: Core.Term -> Maybe Core.Term
+walker604 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker603 fun) (walker603 arg) (\_ -> walker603 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker603 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker603 body) Nothing (\inner -> walker603 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 605; recurses to walker604.
+walker605 :: Core.Term -> Maybe Core.Term
+walker605 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker604 fun) (walker604 arg) (\_ -> walker604 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker604 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker604 body) Nothing (\inner -> walker604 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 606; recurses to walker605.
+walker606 :: Core.Term -> Maybe Core.Term
+walker606 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker605 fun) (walker605 arg) (\_ -> walker605 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker605 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker605 body) Nothing (\inner -> walker605 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 607; recurses to walker606.
+walker607 :: Core.Term -> Maybe Core.Term
+walker607 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker606 fun) (walker606 arg) (\_ -> walker606 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker606 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker606 body) Nothing (\inner -> walker606 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 608; recurses to walker607.
+walker608 :: Core.Term -> Maybe Core.Term
+walker608 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker607 fun) (walker607 arg) (\_ -> walker607 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker607 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker607 body) Nothing (\inner -> walker607 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 609; recurses to walker608.
+walker609 :: Core.Term -> Maybe Core.Term
+walker609 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker608 fun) (walker608 arg) (\_ -> walker608 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker608 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker608 body) Nothing (\inner -> walker608 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 61; recurses to walker60.
+walker61 :: Core.Term -> Maybe Core.Term
+walker61 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker60 fun) (walker60 arg) (\_ -> walker60 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker60 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker60 body) Nothing (\inner -> walker60 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 610; recurses to walker609.
+walker610 :: Core.Term -> Maybe Core.Term
+walker610 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker609 fun) (walker609 arg) (\_ -> walker609 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker609 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker609 body) Nothing (\inner -> walker609 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 611; recurses to walker610.
+walker611 :: Core.Term -> Maybe Core.Term
+walker611 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker610 fun) (walker610 arg) (\_ -> walker610 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker610 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker610 body) Nothing (\inner -> walker610 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 612; recurses to walker611.
+walker612 :: Core.Term -> Maybe Core.Term
+walker612 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker611 fun) (walker611 arg) (\_ -> walker611 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker611 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker611 body) Nothing (\inner -> walker611 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 613; recurses to walker612.
+walker613 :: Core.Term -> Maybe Core.Term
+walker613 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker612 fun) (walker612 arg) (\_ -> walker612 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker612 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker612 body) Nothing (\inner -> walker612 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 614; recurses to walker613.
+walker614 :: Core.Term -> Maybe Core.Term
+walker614 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker613 fun) (walker613 arg) (\_ -> walker613 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker613 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker613 body) Nothing (\inner -> walker613 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 615; recurses to walker614.
+walker615 :: Core.Term -> Maybe Core.Term
+walker615 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker614 fun) (walker614 arg) (\_ -> walker614 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker614 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker614 body) Nothing (\inner -> walker614 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 616; recurses to walker615.
+walker616 :: Core.Term -> Maybe Core.Term
+walker616 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker615 fun) (walker615 arg) (\_ -> walker615 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker615 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker615 body) Nothing (\inner -> walker615 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 617; recurses to walker616.
+walker617 :: Core.Term -> Maybe Core.Term
+walker617 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker616 fun) (walker616 arg) (\_ -> walker616 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker616 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker616 body) Nothing (\inner -> walker616 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 618; recurses to walker617.
+walker618 :: Core.Term -> Maybe Core.Term
+walker618 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker617 fun) (walker617 arg) (\_ -> walker617 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker617 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker617 body) Nothing (\inner -> walker617 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 619; recurses to walker618.
+walker619 :: Core.Term -> Maybe Core.Term
+walker619 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker618 fun) (walker618 arg) (\_ -> walker618 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker618 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker618 body) Nothing (\inner -> walker618 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 62; recurses to walker61.
+walker62 :: Core.Term -> Maybe Core.Term
+walker62 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker61 fun) (walker61 arg) (\_ -> walker61 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker61 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker61 body) Nothing (\inner -> walker61 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 620; recurses to walker619.
+walker620 :: Core.Term -> Maybe Core.Term
+walker620 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker619 fun) (walker619 arg) (\_ -> walker619 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker619 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker619 body) Nothing (\inner -> walker619 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 621; recurses to walker620.
+walker621 :: Core.Term -> Maybe Core.Term
+walker621 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker620 fun) (walker620 arg) (\_ -> walker620 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker620 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker620 body) Nothing (\inner -> walker620 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 622; recurses to walker621.
+walker622 :: Core.Term -> Maybe Core.Term
+walker622 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker621 fun) (walker621 arg) (\_ -> walker621 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker621 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker621 body) Nothing (\inner -> walker621 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 623; recurses to walker622.
+walker623 :: Core.Term -> Maybe Core.Term
+walker623 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker622 fun) (walker622 arg) (\_ -> walker622 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker622 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker622 body) Nothing (\inner -> walker622 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 624; recurses to walker623.
+walker624 :: Core.Term -> Maybe Core.Term
+walker624 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker623 fun) (walker623 arg) (\_ -> walker623 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker623 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker623 body) Nothing (\inner -> walker623 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 625; recurses to walker624.
+walker625 :: Core.Term -> Maybe Core.Term
+walker625 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker624 fun) (walker624 arg) (\_ -> walker624 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker624 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker624 body) Nothing (\inner -> walker624 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 626; recurses to walker625.
+walker626 :: Core.Term -> Maybe Core.Term
+walker626 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker625 fun) (walker625 arg) (\_ -> walker625 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker625 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker625 body) Nothing (\inner -> walker625 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 627; recurses to walker626.
+walker627 :: Core.Term -> Maybe Core.Term
+walker627 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker626 fun) (walker626 arg) (\_ -> walker626 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker626 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker626 body) Nothing (\inner -> walker626 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 628; recurses to walker627.
+walker628 :: Core.Term -> Maybe Core.Term
+walker628 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker627 fun) (walker627 arg) (\_ -> walker627 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker627 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker627 body) Nothing (\inner -> walker627 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 629; recurses to walker628.
+walker629 :: Core.Term -> Maybe Core.Term
+walker629 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker628 fun) (walker628 arg) (\_ -> walker628 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker628 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker628 body) Nothing (\inner -> walker628 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 63; recurses to walker62.
+walker63 :: Core.Term -> Maybe Core.Term
+walker63 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker62 fun) (walker62 arg) (\_ -> walker62 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker62 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker62 body) Nothing (\inner -> walker62 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 630; recurses to walker629.
+walker630 :: Core.Term -> Maybe Core.Term
+walker630 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker629 fun) (walker629 arg) (\_ -> walker629 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker629 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker629 body) Nothing (\inner -> walker629 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 631; recurses to walker630.
+walker631 :: Core.Term -> Maybe Core.Term
+walker631 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker630 fun) (walker630 arg) (\_ -> walker630 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker630 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker630 body) Nothing (\inner -> walker630 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 632; recurses to walker631.
+walker632 :: Core.Term -> Maybe Core.Term
+walker632 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker631 fun) (walker631 arg) (\_ -> walker631 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker631 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker631 body) Nothing (\inner -> walker631 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 633; recurses to walker632.
+walker633 :: Core.Term -> Maybe Core.Term
+walker633 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker632 fun) (walker632 arg) (\_ -> walker632 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker632 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker632 body) Nothing (\inner -> walker632 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 634; recurses to walker633.
+walker634 :: Core.Term -> Maybe Core.Term
+walker634 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker633 fun) (walker633 arg) (\_ -> walker633 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker633 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker633 body) Nothing (\inner -> walker633 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 635; recurses to walker634.
+walker635 :: Core.Term -> Maybe Core.Term
+walker635 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker634 fun) (walker634 arg) (\_ -> walker634 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker634 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker634 body) Nothing (\inner -> walker634 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 636; recurses to walker635.
+walker636 :: Core.Term -> Maybe Core.Term
+walker636 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker635 fun) (walker635 arg) (\_ -> walker635 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker635 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker635 body) Nothing (\inner -> walker635 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 637; recurses to walker636.
+walker637 :: Core.Term -> Maybe Core.Term
+walker637 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker636 fun) (walker636 arg) (\_ -> walker636 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker636 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker636 body) Nothing (\inner -> walker636 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 638; recurses to walker637.
+walker638 :: Core.Term -> Maybe Core.Term
+walker638 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker637 fun) (walker637 arg) (\_ -> walker637 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker637 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker637 body) Nothing (\inner -> walker637 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 639; recurses to walker638.
+walker639 :: Core.Term -> Maybe Core.Term
+walker639 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker638 fun) (walker638 arg) (\_ -> walker638 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker638 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker638 body) Nothing (\inner -> walker638 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 64; recurses to walker63.
+walker64 :: Core.Term -> Maybe Core.Term
+walker64 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker63 fun) (walker63 arg) (\_ -> walker63 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker63 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker63 body) Nothing (\inner -> walker63 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 640; recurses to walker639.
+walker640 :: Core.Term -> Maybe Core.Term
+walker640 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker639 fun) (walker639 arg) (\_ -> walker639 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker639 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker639 body) Nothing (\inner -> walker639 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 641; recurses to walker640.
+walker641 :: Core.Term -> Maybe Core.Term
+walker641 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker640 fun) (walker640 arg) (\_ -> walker640 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker640 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker640 body) Nothing (\inner -> walker640 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 642; recurses to walker641.
+walker642 :: Core.Term -> Maybe Core.Term
+walker642 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker641 fun) (walker641 arg) (\_ -> walker641 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker641 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker641 body) Nothing (\inner -> walker641 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 643; recurses to walker642.
+walker643 :: Core.Term -> Maybe Core.Term
+walker643 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker642 fun) (walker642 arg) (\_ -> walker642 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker642 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker642 body) Nothing (\inner -> walker642 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 644; recurses to walker643.
+walker644 :: Core.Term -> Maybe Core.Term
+walker644 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker643 fun) (walker643 arg) (\_ -> walker643 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker643 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker643 body) Nothing (\inner -> walker643 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 645; recurses to walker644.
+walker645 :: Core.Term -> Maybe Core.Term
+walker645 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker644 fun) (walker644 arg) (\_ -> walker644 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker644 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker644 body) Nothing (\inner -> walker644 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 646; recurses to walker645.
+walker646 :: Core.Term -> Maybe Core.Term
+walker646 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker645 fun) (walker645 arg) (\_ -> walker645 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker645 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker645 body) Nothing (\inner -> walker645 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 647; recurses to walker646.
+walker647 :: Core.Term -> Maybe Core.Term
+walker647 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker646 fun) (walker646 arg) (\_ -> walker646 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker646 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker646 body) Nothing (\inner -> walker646 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 648; recurses to walker647.
+walker648 :: Core.Term -> Maybe Core.Term
+walker648 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker647 fun) (walker647 arg) (\_ -> walker647 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker647 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker647 body) Nothing (\inner -> walker647 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 649; recurses to walker648.
+walker649 :: Core.Term -> Maybe Core.Term
+walker649 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker648 fun) (walker648 arg) (\_ -> walker648 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker648 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker648 body) Nothing (\inner -> walker648 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 65; recurses to walker64.
+walker65 :: Core.Term -> Maybe Core.Term
+walker65 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker64 fun) (walker64 arg) (\_ -> walker64 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker64 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker64 body) Nothing (\inner -> walker64 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 650; recurses to walker649.
+walker650 :: Core.Term -> Maybe Core.Term
+walker650 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker649 fun) (walker649 arg) (\_ -> walker649 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker649 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker649 body) Nothing (\inner -> walker649 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 651; recurses to walker650.
+walker651 :: Core.Term -> Maybe Core.Term
+walker651 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker650 fun) (walker650 arg) (\_ -> walker650 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker650 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker650 body) Nothing (\inner -> walker650 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 652; recurses to walker651.
+walker652 :: Core.Term -> Maybe Core.Term
+walker652 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker651 fun) (walker651 arg) (\_ -> walker651 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker651 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker651 body) Nothing (\inner -> walker651 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 653; recurses to walker652.
+walker653 :: Core.Term -> Maybe Core.Term
+walker653 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker652 fun) (walker652 arg) (\_ -> walker652 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker652 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker652 body) Nothing (\inner -> walker652 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 654; recurses to walker653.
+walker654 :: Core.Term -> Maybe Core.Term
+walker654 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker653 fun) (walker653 arg) (\_ -> walker653 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker653 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker653 body) Nothing (\inner -> walker653 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 655; recurses to walker654.
+walker655 :: Core.Term -> Maybe Core.Term
+walker655 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker654 fun) (walker654 arg) (\_ -> walker654 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker654 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker654 body) Nothing (\inner -> walker654 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 656; recurses to walker655.
+walker656 :: Core.Term -> Maybe Core.Term
+walker656 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker655 fun) (walker655 arg) (\_ -> walker655 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker655 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker655 body) Nothing (\inner -> walker655 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 657; recurses to walker656.
+walker657 :: Core.Term -> Maybe Core.Term
+walker657 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker656 fun) (walker656 arg) (\_ -> walker656 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker656 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker656 body) Nothing (\inner -> walker656 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 658; recurses to walker657.
+walker658 :: Core.Term -> Maybe Core.Term
+walker658 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker657 fun) (walker657 arg) (\_ -> walker657 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker657 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker657 body) Nothing (\inner -> walker657 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 659; recurses to walker658.
+walker659 :: Core.Term -> Maybe Core.Term
+walker659 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker658 fun) (walker658 arg) (\_ -> walker658 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker658 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker658 body) Nothing (\inner -> walker658 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 66; recurses to walker65.
+walker66 :: Core.Term -> Maybe Core.Term
+walker66 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker65 fun) (walker65 arg) (\_ -> walker65 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker65 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker65 body) Nothing (\inner -> walker65 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 660; recurses to walker659.
+walker660 :: Core.Term -> Maybe Core.Term
+walker660 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker659 fun) (walker659 arg) (\_ -> walker659 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker659 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker659 body) Nothing (\inner -> walker659 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 661; recurses to walker660.
+walker661 :: Core.Term -> Maybe Core.Term
+walker661 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker660 fun) (walker660 arg) (\_ -> walker660 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker660 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker660 body) Nothing (\inner -> walker660 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 662; recurses to walker661.
+walker662 :: Core.Term -> Maybe Core.Term
+walker662 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker661 fun) (walker661 arg) (\_ -> walker661 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker661 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker661 body) Nothing (\inner -> walker661 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 663; recurses to walker662.
+walker663 :: Core.Term -> Maybe Core.Term
+walker663 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker662 fun) (walker662 arg) (\_ -> walker662 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker662 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker662 body) Nothing (\inner -> walker662 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 664; recurses to walker663.
+walker664 :: Core.Term -> Maybe Core.Term
+walker664 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker663 fun) (walker663 arg) (\_ -> walker663 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker663 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker663 body) Nothing (\inner -> walker663 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 665; recurses to walker664.
+walker665 :: Core.Term -> Maybe Core.Term
+walker665 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker664 fun) (walker664 arg) (\_ -> walker664 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker664 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker664 body) Nothing (\inner -> walker664 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 666; recurses to walker665.
+walker666 :: Core.Term -> Maybe Core.Term
+walker666 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker665 fun) (walker665 arg) (\_ -> walker665 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker665 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker665 body) Nothing (\inner -> walker665 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 667; recurses to walker666.
+walker667 :: Core.Term -> Maybe Core.Term
+walker667 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker666 fun) (walker666 arg) (\_ -> walker666 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker666 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker666 body) Nothing (\inner -> walker666 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 668; recurses to walker667.
+walker668 :: Core.Term -> Maybe Core.Term
+walker668 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker667 fun) (walker667 arg) (\_ -> walker667 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker667 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker667 body) Nothing (\inner -> walker667 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 669; recurses to walker668.
+walker669 :: Core.Term -> Maybe Core.Term
+walker669 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker668 fun) (walker668 arg) (\_ -> walker668 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker668 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker668 body) Nothing (\inner -> walker668 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 67; recurses to walker66.
+walker67 :: Core.Term -> Maybe Core.Term
+walker67 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker66 fun) (walker66 arg) (\_ -> walker66 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker66 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker66 body) Nothing (\inner -> walker66 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 670; recurses to walker669.
+walker670 :: Core.Term -> Maybe Core.Term
+walker670 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker669 fun) (walker669 arg) (\_ -> walker669 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker669 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker669 body) Nothing (\inner -> walker669 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 671; recurses to walker670.
+walker671 :: Core.Term -> Maybe Core.Term
+walker671 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker670 fun) (walker670 arg) (\_ -> walker670 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker670 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker670 body) Nothing (\inner -> walker670 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 672; recurses to walker671.
+walker672 :: Core.Term -> Maybe Core.Term
+walker672 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker671 fun) (walker671 arg) (\_ -> walker671 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker671 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker671 body) Nothing (\inner -> walker671 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 673; recurses to walker672.
+walker673 :: Core.Term -> Maybe Core.Term
+walker673 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker672 fun) (walker672 arg) (\_ -> walker672 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker672 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker672 body) Nothing (\inner -> walker672 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 674; recurses to walker673.
+walker674 :: Core.Term -> Maybe Core.Term
+walker674 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker673 fun) (walker673 arg) (\_ -> walker673 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker673 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker673 body) Nothing (\inner -> walker673 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 675; recurses to walker674.
+walker675 :: Core.Term -> Maybe Core.Term
+walker675 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker674 fun) (walker674 arg) (\_ -> walker674 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker674 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker674 body) Nothing (\inner -> walker674 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 676; recurses to walker675.
+walker676 :: Core.Term -> Maybe Core.Term
+walker676 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker675 fun) (walker675 arg) (\_ -> walker675 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker675 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker675 body) Nothing (\inner -> walker675 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 677; recurses to walker676.
+walker677 :: Core.Term -> Maybe Core.Term
+walker677 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker676 fun) (walker676 arg) (\_ -> walker676 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker676 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker676 body) Nothing (\inner -> walker676 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 678; recurses to walker677.
+walker678 :: Core.Term -> Maybe Core.Term
+walker678 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker677 fun) (walker677 arg) (\_ -> walker677 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker677 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker677 body) Nothing (\inner -> walker677 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 679; recurses to walker678.
+walker679 :: Core.Term -> Maybe Core.Term
+walker679 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker678 fun) (walker678 arg) (\_ -> walker678 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker678 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker678 body) Nothing (\inner -> walker678 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 68; recurses to walker67.
+walker68 :: Core.Term -> Maybe Core.Term
+walker68 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker67 fun) (walker67 arg) (\_ -> walker67 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker67 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker67 body) Nothing (\inner -> walker67 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 680; recurses to walker679.
+walker680 :: Core.Term -> Maybe Core.Term
+walker680 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker679 fun) (walker679 arg) (\_ -> walker679 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker679 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker679 body) Nothing (\inner -> walker679 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 681; recurses to walker680.
+walker681 :: Core.Term -> Maybe Core.Term
+walker681 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker680 fun) (walker680 arg) (\_ -> walker680 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker680 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker680 body) Nothing (\inner -> walker680 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 682; recurses to walker681.
+walker682 :: Core.Term -> Maybe Core.Term
+walker682 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker681 fun) (walker681 arg) (\_ -> walker681 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker681 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker681 body) Nothing (\inner -> walker681 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 683; recurses to walker682.
+walker683 :: Core.Term -> Maybe Core.Term
+walker683 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker682 fun) (walker682 arg) (\_ -> walker682 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker682 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker682 body) Nothing (\inner -> walker682 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 684; recurses to walker683.
+walker684 :: Core.Term -> Maybe Core.Term
+walker684 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker683 fun) (walker683 arg) (\_ -> walker683 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker683 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker683 body) Nothing (\inner -> walker683 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 685; recurses to walker684.
+walker685 :: Core.Term -> Maybe Core.Term
+walker685 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker684 fun) (walker684 arg) (\_ -> walker684 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker684 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker684 body) Nothing (\inner -> walker684 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 686; recurses to walker685.
+walker686 :: Core.Term -> Maybe Core.Term
+walker686 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker685 fun) (walker685 arg) (\_ -> walker685 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker685 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker685 body) Nothing (\inner -> walker685 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 687; recurses to walker686.
+walker687 :: Core.Term -> Maybe Core.Term
+walker687 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker686 fun) (walker686 arg) (\_ -> walker686 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker686 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker686 body) Nothing (\inner -> walker686 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 688; recurses to walker687.
+walker688 :: Core.Term -> Maybe Core.Term
+walker688 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker687 fun) (walker687 arg) (\_ -> walker687 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker687 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker687 body) Nothing (\inner -> walker687 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 689; recurses to walker688.
+walker689 :: Core.Term -> Maybe Core.Term
+walker689 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker688 fun) (walker688 arg) (\_ -> walker688 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker688 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker688 body) Nothing (\inner -> walker688 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 69; recurses to walker68.
+walker69 :: Core.Term -> Maybe Core.Term
+walker69 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker68 fun) (walker68 arg) (\_ -> walker68 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker68 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker68 body) Nothing (\inner -> walker68 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 690; recurses to walker689.
+walker690 :: Core.Term -> Maybe Core.Term
+walker690 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker689 fun) (walker689 arg) (\_ -> walker689 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker689 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker689 body) Nothing (\inner -> walker689 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 691; recurses to walker690.
+walker691 :: Core.Term -> Maybe Core.Term
+walker691 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker690 fun) (walker690 arg) (\_ -> walker690 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker690 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker690 body) Nothing (\inner -> walker690 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 692; recurses to walker691.
+walker692 :: Core.Term -> Maybe Core.Term
+walker692 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker691 fun) (walker691 arg) (\_ -> walker691 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker691 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker691 body) Nothing (\inner -> walker691 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 693; recurses to walker692.
+walker693 :: Core.Term -> Maybe Core.Term
+walker693 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker692 fun) (walker692 arg) (\_ -> walker692 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker692 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker692 body) Nothing (\inner -> walker692 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 694; recurses to walker693.
+walker694 :: Core.Term -> Maybe Core.Term
+walker694 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker693 fun) (walker693 arg) (\_ -> walker693 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker693 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker693 body) Nothing (\inner -> walker693 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 695; recurses to walker694.
+walker695 :: Core.Term -> Maybe Core.Term
+walker695 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker694 fun) (walker694 arg) (\_ -> walker694 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker694 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker694 body) Nothing (\inner -> walker694 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 696; recurses to walker695.
+walker696 :: Core.Term -> Maybe Core.Term
+walker696 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker695 fun) (walker695 arg) (\_ -> walker695 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker695 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker695 body) Nothing (\inner -> walker695 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 697; recurses to walker696.
+walker697 :: Core.Term -> Maybe Core.Term
+walker697 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker696 fun) (walker696 arg) (\_ -> walker696 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker696 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker696 body) Nothing (\inner -> walker696 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 698; recurses to walker697.
+walker698 :: Core.Term -> Maybe Core.Term
+walker698 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker697 fun) (walker697 arg) (\_ -> walker697 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker697 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker697 body) Nothing (\inner -> walker697 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 699; recurses to walker698.
+walker699 :: Core.Term -> Maybe Core.Term
+walker699 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker698 fun) (walker698 arg) (\_ -> walker698 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker698 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker698 body) Nothing (\inner -> walker698 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 7; recurses to walker6.
+walker7 :: Core.Term -> Maybe Core.Term
+walker7 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker6 fun) (walker6 arg) (\_ -> walker6 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker6 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker6 body) Nothing (\inner -> walker6 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 70; recurses to walker69.
+walker70 :: Core.Term -> Maybe Core.Term
+walker70 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker69 fun) (walker69 arg) (\_ -> walker69 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker69 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker69 body) Nothing (\inner -> walker69 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 700; recurses to walker699.
+walker700 :: Core.Term -> Maybe Core.Term
+walker700 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker699 fun) (walker699 arg) (\_ -> walker699 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker699 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker699 body) Nothing (\inner -> walker699 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 701; recurses to walker700.
+walker701 :: Core.Term -> Maybe Core.Term
+walker701 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker700 fun) (walker700 arg) (\_ -> walker700 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker700 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker700 body) Nothing (\inner -> walker700 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 702; recurses to walker701.
+walker702 :: Core.Term -> Maybe Core.Term
+walker702 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker701 fun) (walker701 arg) (\_ -> walker701 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker701 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker701 body) Nothing (\inner -> walker701 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 703; recurses to walker702.
+walker703 :: Core.Term -> Maybe Core.Term
+walker703 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker702 fun) (walker702 arg) (\_ -> walker702 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker702 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker702 body) Nothing (\inner -> walker702 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 704; recurses to walker703.
+walker704 :: Core.Term -> Maybe Core.Term
+walker704 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker703 fun) (walker703 arg) (\_ -> walker703 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker703 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker703 body) Nothing (\inner -> walker703 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 705; recurses to walker704.
+walker705 :: Core.Term -> Maybe Core.Term
+walker705 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker704 fun) (walker704 arg) (\_ -> walker704 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker704 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker704 body) Nothing (\inner -> walker704 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 706; recurses to walker705.
+walker706 :: Core.Term -> Maybe Core.Term
+walker706 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker705 fun) (walker705 arg) (\_ -> walker705 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker705 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker705 body) Nothing (\inner -> walker705 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 707; recurses to walker706.
+walker707 :: Core.Term -> Maybe Core.Term
+walker707 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker706 fun) (walker706 arg) (\_ -> walker706 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker706 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker706 body) Nothing (\inner -> walker706 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 708; recurses to walker707.
+walker708 :: Core.Term -> Maybe Core.Term
+walker708 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker707 fun) (walker707 arg) (\_ -> walker707 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker707 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker707 body) Nothing (\inner -> walker707 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 709; recurses to walker708.
+walker709 :: Core.Term -> Maybe Core.Term
+walker709 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker708 fun) (walker708 arg) (\_ -> walker708 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker708 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker708 body) Nothing (\inner -> walker708 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 71; recurses to walker70.
+walker71 :: Core.Term -> Maybe Core.Term
+walker71 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker70 fun) (walker70 arg) (\_ -> walker70 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker70 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker70 body) Nothing (\inner -> walker70 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 710; recurses to walker709.
+walker710 :: Core.Term -> Maybe Core.Term
+walker710 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker709 fun) (walker709 arg) (\_ -> walker709 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker709 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker709 body) Nothing (\inner -> walker709 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 711; recurses to walker710.
+walker711 :: Core.Term -> Maybe Core.Term
+walker711 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker710 fun) (walker710 arg) (\_ -> walker710 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker710 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker710 body) Nothing (\inner -> walker710 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 712; recurses to walker711.
+walker712 :: Core.Term -> Maybe Core.Term
+walker712 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker711 fun) (walker711 arg) (\_ -> walker711 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker711 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker711 body) Nothing (\inner -> walker711 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 713; recurses to walker712.
+walker713 :: Core.Term -> Maybe Core.Term
+walker713 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker712 fun) (walker712 arg) (\_ -> walker712 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker712 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker712 body) Nothing (\inner -> walker712 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 714; recurses to walker713.
+walker714 :: Core.Term -> Maybe Core.Term
+walker714 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker713 fun) (walker713 arg) (\_ -> walker713 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker713 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker713 body) Nothing (\inner -> walker713 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 715; recurses to walker714.
+walker715 :: Core.Term -> Maybe Core.Term
+walker715 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker714 fun) (walker714 arg) (\_ -> walker714 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker714 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker714 body) Nothing (\inner -> walker714 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 716; recurses to walker715.
+walker716 :: Core.Term -> Maybe Core.Term
+walker716 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker715 fun) (walker715 arg) (\_ -> walker715 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker715 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker715 body) Nothing (\inner -> walker715 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 717; recurses to walker716.
+walker717 :: Core.Term -> Maybe Core.Term
+walker717 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker716 fun) (walker716 arg) (\_ -> walker716 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker716 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker716 body) Nothing (\inner -> walker716 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 718; recurses to walker717.
+walker718 :: Core.Term -> Maybe Core.Term
+walker718 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker717 fun) (walker717 arg) (\_ -> walker717 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker717 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker717 body) Nothing (\inner -> walker717 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 719; recurses to walker718.
+walker719 :: Core.Term -> Maybe Core.Term
+walker719 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker718 fun) (walker718 arg) (\_ -> walker718 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker718 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker718 body) Nothing (\inner -> walker718 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 72; recurses to walker71.
+walker72 :: Core.Term -> Maybe Core.Term
+walker72 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker71 fun) (walker71 arg) (\_ -> walker71 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker71 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker71 body) Nothing (\inner -> walker71 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 720; recurses to walker719.
+walker720 :: Core.Term -> Maybe Core.Term
+walker720 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker719 fun) (walker719 arg) (\_ -> walker719 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker719 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker719 body) Nothing (\inner -> walker719 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 721; recurses to walker720.
+walker721 :: Core.Term -> Maybe Core.Term
+walker721 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker720 fun) (walker720 arg) (\_ -> walker720 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker720 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker720 body) Nothing (\inner -> walker720 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 722; recurses to walker721.
+walker722 :: Core.Term -> Maybe Core.Term
+walker722 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker721 fun) (walker721 arg) (\_ -> walker721 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker721 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker721 body) Nothing (\inner -> walker721 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 723; recurses to walker722.
+walker723 :: Core.Term -> Maybe Core.Term
+walker723 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker722 fun) (walker722 arg) (\_ -> walker722 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker722 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker722 body) Nothing (\inner -> walker722 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 724; recurses to walker723.
+walker724 :: Core.Term -> Maybe Core.Term
+walker724 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker723 fun) (walker723 arg) (\_ -> walker723 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker723 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker723 body) Nothing (\inner -> walker723 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 725; recurses to walker724.
+walker725 :: Core.Term -> Maybe Core.Term
+walker725 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker724 fun) (walker724 arg) (\_ -> walker724 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker724 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker724 body) Nothing (\inner -> walker724 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 726; recurses to walker725.
+walker726 :: Core.Term -> Maybe Core.Term
+walker726 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker725 fun) (walker725 arg) (\_ -> walker725 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker725 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker725 body) Nothing (\inner -> walker725 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 727; recurses to walker726.
+walker727 :: Core.Term -> Maybe Core.Term
+walker727 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker726 fun) (walker726 arg) (\_ -> walker726 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker726 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker726 body) Nothing (\inner -> walker726 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 728; recurses to walker727.
+walker728 :: Core.Term -> Maybe Core.Term
+walker728 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker727 fun) (walker727 arg) (\_ -> walker727 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker727 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker727 body) Nothing (\inner -> walker727 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 729; recurses to walker728.
+walker729 :: Core.Term -> Maybe Core.Term
+walker729 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker728 fun) (walker728 arg) (\_ -> walker728 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker728 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker728 body) Nothing (\inner -> walker728 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 73; recurses to walker72.
+walker73 :: Core.Term -> Maybe Core.Term
+walker73 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker72 fun) (walker72 arg) (\_ -> walker72 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker72 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker72 body) Nothing (\inner -> walker72 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 730; recurses to walker729.
+walker730 :: Core.Term -> Maybe Core.Term
+walker730 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker729 fun) (walker729 arg) (\_ -> walker729 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker729 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker729 body) Nothing (\inner -> walker729 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 731; recurses to walker730.
+walker731 :: Core.Term -> Maybe Core.Term
+walker731 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker730 fun) (walker730 arg) (\_ -> walker730 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker730 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker730 body) Nothing (\inner -> walker730 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 732; recurses to walker731.
+walker732 :: Core.Term -> Maybe Core.Term
+walker732 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker731 fun) (walker731 arg) (\_ -> walker731 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker731 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker731 body) Nothing (\inner -> walker731 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 733; recurses to walker732.
+walker733 :: Core.Term -> Maybe Core.Term
+walker733 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker732 fun) (walker732 arg) (\_ -> walker732 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker732 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker732 body) Nothing (\inner -> walker732 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 734; recurses to walker733.
+walker734 :: Core.Term -> Maybe Core.Term
+walker734 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker733 fun) (walker733 arg) (\_ -> walker733 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker733 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker733 body) Nothing (\inner -> walker733 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 735; recurses to walker734.
+walker735 :: Core.Term -> Maybe Core.Term
+walker735 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker734 fun) (walker734 arg) (\_ -> walker734 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker734 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker734 body) Nothing (\inner -> walker734 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 736; recurses to walker735.
+walker736 :: Core.Term -> Maybe Core.Term
+walker736 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker735 fun) (walker735 arg) (\_ -> walker735 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker735 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker735 body) Nothing (\inner -> walker735 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 737; recurses to walker736.
+walker737 :: Core.Term -> Maybe Core.Term
+walker737 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker736 fun) (walker736 arg) (\_ -> walker736 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker736 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker736 body) Nothing (\inner -> walker736 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 738; recurses to walker737.
+walker738 :: Core.Term -> Maybe Core.Term
+walker738 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker737 fun) (walker737 arg) (\_ -> walker737 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker737 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker737 body) Nothing (\inner -> walker737 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 739; recurses to walker738.
+walker739 :: Core.Term -> Maybe Core.Term
+walker739 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker738 fun) (walker738 arg) (\_ -> walker738 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker738 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker738 body) Nothing (\inner -> walker738 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 74; recurses to walker73.
+walker74 :: Core.Term -> Maybe Core.Term
+walker74 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker73 fun) (walker73 arg) (\_ -> walker73 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker73 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker73 body) Nothing (\inner -> walker73 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 740; recurses to walker739.
+walker740 :: Core.Term -> Maybe Core.Term
+walker740 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker739 fun) (walker739 arg) (\_ -> walker739 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker739 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker739 body) Nothing (\inner -> walker739 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 741; recurses to walker740.
+walker741 :: Core.Term -> Maybe Core.Term
+walker741 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker740 fun) (walker740 arg) (\_ -> walker740 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker740 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker740 body) Nothing (\inner -> walker740 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 742; recurses to walker741.
+walker742 :: Core.Term -> Maybe Core.Term
+walker742 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker741 fun) (walker741 arg) (\_ -> walker741 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker741 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker741 body) Nothing (\inner -> walker741 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 743; recurses to walker742.
+walker743 :: Core.Term -> Maybe Core.Term
+walker743 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker742 fun) (walker742 arg) (\_ -> walker742 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker742 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker742 body) Nothing (\inner -> walker742 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 744; recurses to walker743.
+walker744 :: Core.Term -> Maybe Core.Term
+walker744 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker743 fun) (walker743 arg) (\_ -> walker743 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker743 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker743 body) Nothing (\inner -> walker743 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 745; recurses to walker744.
+walker745 :: Core.Term -> Maybe Core.Term
+walker745 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker744 fun) (walker744 arg) (\_ -> walker744 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker744 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker744 body) Nothing (\inner -> walker744 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 746; recurses to walker745.
+walker746 :: Core.Term -> Maybe Core.Term
+walker746 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker745 fun) (walker745 arg) (\_ -> walker745 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker745 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker745 body) Nothing (\inner -> walker745 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 747; recurses to walker746.
+walker747 :: Core.Term -> Maybe Core.Term
+walker747 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker746 fun) (walker746 arg) (\_ -> walker746 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker746 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker746 body) Nothing (\inner -> walker746 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 748; recurses to walker747.
+walker748 :: Core.Term -> Maybe Core.Term
+walker748 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker747 fun) (walker747 arg) (\_ -> walker747 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker747 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker747 body) Nothing (\inner -> walker747 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 749; recurses to walker748.
+walker749 :: Core.Term -> Maybe Core.Term
+walker749 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker748 fun) (walker748 arg) (\_ -> walker748 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker748 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker748 body) Nothing (\inner -> walker748 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 75; recurses to walker74.
+walker75 :: Core.Term -> Maybe Core.Term
+walker75 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker74 fun) (walker74 arg) (\_ -> walker74 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker74 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker74 body) Nothing (\inner -> walker74 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 750; recurses to walker749.
+walker750 :: Core.Term -> Maybe Core.Term
+walker750 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker749 fun) (walker749 arg) (\_ -> walker749 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker749 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker749 body) Nothing (\inner -> walker749 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 751; recurses to walker750.
+walker751 :: Core.Term -> Maybe Core.Term
+walker751 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker750 fun) (walker750 arg) (\_ -> walker750 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker750 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker750 body) Nothing (\inner -> walker750 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 752; recurses to walker751.
+walker752 :: Core.Term -> Maybe Core.Term
+walker752 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker751 fun) (walker751 arg) (\_ -> walker751 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker751 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker751 body) Nothing (\inner -> walker751 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 753; recurses to walker752.
+walker753 :: Core.Term -> Maybe Core.Term
+walker753 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker752 fun) (walker752 arg) (\_ -> walker752 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker752 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker752 body) Nothing (\inner -> walker752 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 754; recurses to walker753.
+walker754 :: Core.Term -> Maybe Core.Term
+walker754 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker753 fun) (walker753 arg) (\_ -> walker753 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker753 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker753 body) Nothing (\inner -> walker753 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 755; recurses to walker754.
+walker755 :: Core.Term -> Maybe Core.Term
+walker755 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker754 fun) (walker754 arg) (\_ -> walker754 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker754 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker754 body) Nothing (\inner -> walker754 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 756; recurses to walker755.
+walker756 :: Core.Term -> Maybe Core.Term
+walker756 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker755 fun) (walker755 arg) (\_ -> walker755 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker755 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker755 body) Nothing (\inner -> walker755 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 757; recurses to walker756.
+walker757 :: Core.Term -> Maybe Core.Term
+walker757 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker756 fun) (walker756 arg) (\_ -> walker756 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker756 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker756 body) Nothing (\inner -> walker756 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 758; recurses to walker757.
+walker758 :: Core.Term -> Maybe Core.Term
+walker758 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker757 fun) (walker757 arg) (\_ -> walker757 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker757 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker757 body) Nothing (\inner -> walker757 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 759; recurses to walker758.
+walker759 :: Core.Term -> Maybe Core.Term
+walker759 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker758 fun) (walker758 arg) (\_ -> walker758 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker758 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker758 body) Nothing (\inner -> walker758 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 76; recurses to walker75.
+walker76 :: Core.Term -> Maybe Core.Term
+walker76 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker75 fun) (walker75 arg) (\_ -> walker75 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker75 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker75 body) Nothing (\inner -> walker75 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 760; recurses to walker759.
+walker760 :: Core.Term -> Maybe Core.Term
+walker760 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker759 fun) (walker759 arg) (\_ -> walker759 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker759 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker759 body) Nothing (\inner -> walker759 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 761; recurses to walker760.
+walker761 :: Core.Term -> Maybe Core.Term
+walker761 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker760 fun) (walker760 arg) (\_ -> walker760 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker760 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker760 body) Nothing (\inner -> walker760 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 762; recurses to walker761.
+walker762 :: Core.Term -> Maybe Core.Term
+walker762 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker761 fun) (walker761 arg) (\_ -> walker761 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker761 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker761 body) Nothing (\inner -> walker761 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 763; recurses to walker762.
+walker763 :: Core.Term -> Maybe Core.Term
+walker763 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker762 fun) (walker762 arg) (\_ -> walker762 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker762 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker762 body) Nothing (\inner -> walker762 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 764; recurses to walker763.
+walker764 :: Core.Term -> Maybe Core.Term
+walker764 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker763 fun) (walker763 arg) (\_ -> walker763 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker763 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker763 body) Nothing (\inner -> walker763 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 765; recurses to walker764.
+walker765 :: Core.Term -> Maybe Core.Term
+walker765 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker764 fun) (walker764 arg) (\_ -> walker764 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker764 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker764 body) Nothing (\inner -> walker764 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 766; recurses to walker765.
+walker766 :: Core.Term -> Maybe Core.Term
+walker766 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker765 fun) (walker765 arg) (\_ -> walker765 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker765 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker765 body) Nothing (\inner -> walker765 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 767; recurses to walker766.
+walker767 :: Core.Term -> Maybe Core.Term
+walker767 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker766 fun) (walker766 arg) (\_ -> walker766 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker766 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker766 body) Nothing (\inner -> walker766 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 768; recurses to walker767.
+walker768 :: Core.Term -> Maybe Core.Term
+walker768 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker767 fun) (walker767 arg) (\_ -> walker767 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker767 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker767 body) Nothing (\inner -> walker767 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 769; recurses to walker768.
+walker769 :: Core.Term -> Maybe Core.Term
+walker769 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker768 fun) (walker768 arg) (\_ -> walker768 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker768 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker768 body) Nothing (\inner -> walker768 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 77; recurses to walker76.
+walker77 :: Core.Term -> Maybe Core.Term
+walker77 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker76 fun) (walker76 arg) (\_ -> walker76 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker76 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker76 body) Nothing (\inner -> walker76 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 770; recurses to walker769.
+walker770 :: Core.Term -> Maybe Core.Term
+walker770 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker769 fun) (walker769 arg) (\_ -> walker769 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker769 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker769 body) Nothing (\inner -> walker769 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 771; recurses to walker770.
+walker771 :: Core.Term -> Maybe Core.Term
+walker771 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker770 fun) (walker770 arg) (\_ -> walker770 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker770 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker770 body) Nothing (\inner -> walker770 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 772; recurses to walker771.
+walker772 :: Core.Term -> Maybe Core.Term
+walker772 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker771 fun) (walker771 arg) (\_ -> walker771 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker771 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker771 body) Nothing (\inner -> walker771 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 773; recurses to walker772.
+walker773 :: Core.Term -> Maybe Core.Term
+walker773 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker772 fun) (walker772 arg) (\_ -> walker772 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker772 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker772 body) Nothing (\inner -> walker772 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 774; recurses to walker773.
+walker774 :: Core.Term -> Maybe Core.Term
+walker774 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker773 fun) (walker773 arg) (\_ -> walker773 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker773 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker773 body) Nothing (\inner -> walker773 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 775; recurses to walker774.
+walker775 :: Core.Term -> Maybe Core.Term
+walker775 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker774 fun) (walker774 arg) (\_ -> walker774 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker774 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker774 body) Nothing (\inner -> walker774 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 776; recurses to walker775.
+walker776 :: Core.Term -> Maybe Core.Term
+walker776 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker775 fun) (walker775 arg) (\_ -> walker775 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker775 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker775 body) Nothing (\inner -> walker775 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 777; recurses to walker776.
+walker777 :: Core.Term -> Maybe Core.Term
+walker777 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker776 fun) (walker776 arg) (\_ -> walker776 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker776 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker776 body) Nothing (\inner -> walker776 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 778; recurses to walker777.
+walker778 :: Core.Term -> Maybe Core.Term
+walker778 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker777 fun) (walker777 arg) (\_ -> walker777 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker777 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker777 body) Nothing (\inner -> walker777 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 779; recurses to walker778.
+walker779 :: Core.Term -> Maybe Core.Term
+walker779 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker778 fun) (walker778 arg) (\_ -> walker778 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker778 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker778 body) Nothing (\inner -> walker778 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 78; recurses to walker77.
+walker78 :: Core.Term -> Maybe Core.Term
+walker78 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker77 fun) (walker77 arg) (\_ -> walker77 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker77 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker77 body) Nothing (\inner -> walker77 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 780; recurses to walker779.
+walker780 :: Core.Term -> Maybe Core.Term
+walker780 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker779 fun) (walker779 arg) (\_ -> walker779 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker779 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker779 body) Nothing (\inner -> walker779 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 781; recurses to walker780.
+walker781 :: Core.Term -> Maybe Core.Term
+walker781 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker780 fun) (walker780 arg) (\_ -> walker780 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker780 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker780 body) Nothing (\inner -> walker780 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 782; recurses to walker781.
+walker782 :: Core.Term -> Maybe Core.Term
+walker782 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker781 fun) (walker781 arg) (\_ -> walker781 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker781 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker781 body) Nothing (\inner -> walker781 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 783; recurses to walker782.
+walker783 :: Core.Term -> Maybe Core.Term
+walker783 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker782 fun) (walker782 arg) (\_ -> walker782 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker782 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker782 body) Nothing (\inner -> walker782 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 784; recurses to walker783.
+walker784 :: Core.Term -> Maybe Core.Term
+walker784 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker783 fun) (walker783 arg) (\_ -> walker783 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker783 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker783 body) Nothing (\inner -> walker783 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 785; recurses to walker784.
+walker785 :: Core.Term -> Maybe Core.Term
+walker785 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker784 fun) (walker784 arg) (\_ -> walker784 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker784 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker784 body) Nothing (\inner -> walker784 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 786; recurses to walker785.
+walker786 :: Core.Term -> Maybe Core.Term
+walker786 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker785 fun) (walker785 arg) (\_ -> walker785 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker785 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker785 body) Nothing (\inner -> walker785 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 787; recurses to walker786.
+walker787 :: Core.Term -> Maybe Core.Term
+walker787 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker786 fun) (walker786 arg) (\_ -> walker786 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker786 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker786 body) Nothing (\inner -> walker786 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 788; recurses to walker787.
+walker788 :: Core.Term -> Maybe Core.Term
+walker788 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker787 fun) (walker787 arg) (\_ -> walker787 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker787 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker787 body) Nothing (\inner -> walker787 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 789; recurses to walker788.
+walker789 :: Core.Term -> Maybe Core.Term
+walker789 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker788 fun) (walker788 arg) (\_ -> walker788 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker788 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker788 body) Nothing (\inner -> walker788 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 79; recurses to walker78.
+walker79 :: Core.Term -> Maybe Core.Term
+walker79 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker78 fun) (walker78 arg) (\_ -> walker78 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker78 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker78 body) Nothing (\inner -> walker78 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 790; recurses to walker789.
+walker790 :: Core.Term -> Maybe Core.Term
+walker790 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker789 fun) (walker789 arg) (\_ -> walker789 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker789 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker789 body) Nothing (\inner -> walker789 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 791; recurses to walker790.
+walker791 :: Core.Term -> Maybe Core.Term
+walker791 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker790 fun) (walker790 arg) (\_ -> walker790 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker790 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker790 body) Nothing (\inner -> walker790 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 792; recurses to walker791.
+walker792 :: Core.Term -> Maybe Core.Term
+walker792 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker791 fun) (walker791 arg) (\_ -> walker791 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker791 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker791 body) Nothing (\inner -> walker791 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 793; recurses to walker792.
+walker793 :: Core.Term -> Maybe Core.Term
+walker793 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker792 fun) (walker792 arg) (\_ -> walker792 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker792 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker792 body) Nothing (\inner -> walker792 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 794; recurses to walker793.
+walker794 :: Core.Term -> Maybe Core.Term
+walker794 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker793 fun) (walker793 arg) (\_ -> walker793 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker793 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker793 body) Nothing (\inner -> walker793 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 795; recurses to walker794.
+walker795 :: Core.Term -> Maybe Core.Term
+walker795 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker794 fun) (walker794 arg) (\_ -> walker794 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker794 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker794 body) Nothing (\inner -> walker794 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 796; recurses to walker795.
+walker796 :: Core.Term -> Maybe Core.Term
+walker796 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker795 fun) (walker795 arg) (\_ -> walker795 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker795 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker795 body) Nothing (\inner -> walker795 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 797; recurses to walker796.
+walker797 :: Core.Term -> Maybe Core.Term
+walker797 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker796 fun) (walker796 arg) (\_ -> walker796 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker796 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker796 body) Nothing (\inner -> walker796 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 798; recurses to walker797.
+walker798 :: Core.Term -> Maybe Core.Term
+walker798 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker797 fun) (walker797 arg) (\_ -> walker797 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker797 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker797 body) Nothing (\inner -> walker797 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 799; recurses to walker798.
+walker799 :: Core.Term -> Maybe Core.Term
+walker799 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker798 fun) (walker798 arg) (\_ -> walker798 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker798 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker798 body) Nothing (\inner -> walker798 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 8; recurses to walker7.
+walker8 :: Core.Term -> Maybe Core.Term
+walker8 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker7 fun) (walker7 arg) (\_ -> walker7 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker7 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker7 body) Nothing (\inner -> walker7 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 80; recurses to walker79.
+walker80 :: Core.Term -> Maybe Core.Term
+walker80 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker79 fun) (walker79 arg) (\_ -> walker79 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker79 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker79 body) Nothing (\inner -> walker79 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 81; recurses to walker80.
+walker81 :: Core.Term -> Maybe Core.Term
+walker81 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker80 fun) (walker80 arg) (\_ -> walker80 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker80 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker80 body) Nothing (\inner -> walker80 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 82; recurses to walker81.
+walker82 :: Core.Term -> Maybe Core.Term
+walker82 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker81 fun) (walker81 arg) (\_ -> walker81 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker81 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker81 body) Nothing (\inner -> walker81 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 83; recurses to walker82.
+walker83 :: Core.Term -> Maybe Core.Term
+walker83 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker82 fun) (walker82 arg) (\_ -> walker82 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker82 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker82 body) Nothing (\inner -> walker82 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 84; recurses to walker83.
+walker84 :: Core.Term -> Maybe Core.Term
+walker84 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker83 fun) (walker83 arg) (\_ -> walker83 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker83 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker83 body) Nothing (\inner -> walker83 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 85; recurses to walker84.
+walker85 :: Core.Term -> Maybe Core.Term
+walker85 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker84 fun) (walker84 arg) (\_ -> walker84 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker84 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker84 body) Nothing (\inner -> walker84 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 86; recurses to walker85.
+walker86 :: Core.Term -> Maybe Core.Term
+walker86 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker85 fun) (walker85 arg) (\_ -> walker85 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker85 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker85 body) Nothing (\inner -> walker85 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 87; recurses to walker86.
+walker87 :: Core.Term -> Maybe Core.Term
+walker87 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker86 fun) (walker86 arg) (\_ -> walker86 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker86 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker86 body) Nothing (\inner -> walker86 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 88; recurses to walker87.
+walker88 :: Core.Term -> Maybe Core.Term
+walker88 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker87 fun) (walker87 arg) (\_ -> walker87 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker87 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker87 body) Nothing (\inner -> walker87 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 89; recurses to walker88.
+walker89 :: Core.Term -> Maybe Core.Term
+walker89 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker88 fun) (walker88 arg) (\_ -> walker88 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker88 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker88 body) Nothing (\inner -> walker88 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 9; recurses to walker8.
+walker9 :: Core.Term -> Maybe Core.Term
+walker9 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker8 fun) (walker8 arg) (\_ -> walker8 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker8 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker8 body) Nothing (\inner -> walker8 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 90; recurses to walker89.
+walker90 :: Core.Term -> Maybe Core.Term
+walker90 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker89 fun) (walker89 arg) (\_ -> walker89 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker89 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker89 body) Nothing (\inner -> walker89 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 91; recurses to walker90.
+walker91 :: Core.Term -> Maybe Core.Term
+walker91 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker90 fun) (walker90 arg) (\_ -> walker90 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker90 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker90 body) Nothing (\inner -> walker90 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 92; recurses to walker91.
+walker92 :: Core.Term -> Maybe Core.Term
+walker92 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker91 fun) (walker91 arg) (\_ -> walker91 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker91 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker91 body) Nothing (\inner -> walker91 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 93; recurses to walker92.
+walker93 :: Core.Term -> Maybe Core.Term
+walker93 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker92 fun) (walker92 arg) (\_ -> walker92 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker92 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker92 body) Nothing (\inner -> walker92 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 94; recurses to walker93.
+walker94 :: Core.Term -> Maybe Core.Term
+walker94 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker93 fun) (walker93 arg) (\_ -> walker93 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker93 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker93 body) Nothing (\inner -> walker93 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 95; recurses to walker94.
+walker95 :: Core.Term -> Maybe Core.Term
+walker95 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker94 fun) (walker94 arg) (\_ -> walker94 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker94 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker94 body) Nothing (\inner -> walker94 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 96; recurses to walker95.
+walker96 :: Core.Term -> Maybe Core.Term
+walker96 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker95 fun) (walker95 arg) (\_ -> walker95 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker95 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker95 body) Nothing (\inner -> walker95 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 97; recurses to walker96.
+walker97 :: Core.Term -> Maybe Core.Term
+walker97 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker96 fun) (walker96 arg) (\_ -> walker96 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker96 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker96 body) Nothing (\inner -> walker96 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 98; recurses to walker97.
+walker98 :: Core.Term -> Maybe Core.Term
+walker98 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker97 fun) (walker97 arg) (\_ -> walker97 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker97 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker97 body) Nothing (\inner -> walker97 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
+-- | Term walker level 99; recurses to walker98.
+walker99 :: Core.Term -> Maybe Core.Term
+walker99 t =
+
+      let stripped = Strip.deannotateTerm t
+      in case stripped of
+        Core.TermApplication v0 ->
+          let fun = Core.applicationFunction v0
+              arg = Core.applicationArgument v0
+          in (Optionals.cases (walker98 fun) (walker98 arg) (\_ -> walker98 fun))
+        Core.TermLambda v0 ->
+          let body = Core.lambdaBody v0
+          in (walker98 body)
+        Core.TermLet v0 ->
+          let body = Core.letBody v0
+          in (Optionals.cases (walker98 body) Nothing (\inner -> walker98 inner))
+        Core.TermVariable _ -> Just stripped
+        Core.TermLiteral _ -> Just stripped
+        _ -> Just stripped
diff --git a/src/main/haskell/Hydra/Bench/PolymorphicChain.hs b/src/main/haskell/Hydra/Bench/PolymorphicChain.hs
new file mode 100644
--- /dev/null
+++ b/src/main/haskell/Hydra/Bench/PolymorphicChain.hs
@@ -0,0 +1,2426 @@
+-- Note: this is an automatically generated file. Do not edit.
+-- | Polymorphic-chain inference benchmark. polyWalker_K :: Maybe a -> Maybe a; chains via Optionals.bind, instantiating forall a at each cross-def call site.
+
+module Hydra.Bench.PolymorphicChain where
+import qualified Hydra.Ast as Ast
+import qualified Hydra.Coders as Coders
+import qualified Hydra.Core as Core
+import qualified Hydra.Error.Checking as Checking
+import qualified Hydra.Error.Core as ErrorCore
+import qualified Hydra.Error.Packaging as ErrorPackaging
+import qualified Hydra.Errors as Errors
+import qualified Hydra.Graph as Graph
+import qualified Hydra.Json.Model as Model
+import qualified Hydra.Overlay.Haskell.Lib.Optionals as Optionals
+import qualified Hydra.Packaging as Packaging
+import qualified Hydra.Parsing as Parsing
+import qualified Hydra.Paths as Paths
+import qualified Hydra.Query as Query
+import qualified Hydra.Relational as Relational
+import qualified Hydra.Tabular as Tabular
+import qualified Hydra.Testing as Testing
+import qualified Hydra.Topology as Topology
+import qualified Hydra.Typed as Typed
+import qualified Hydra.Typing as Typing
+import qualified Hydra.Util as Util
+import qualified Hydra.Validation as Validation
+import qualified Hydra.Variants as Variants
+import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
+import qualified Data.Scientific as Sci
+-- | Polymorphic walker level 0; recurses to polyWalker0.
+polyWalker0 :: t0 -> t0
+polyWalker0 m = m
+-- | Polymorphic walker level 1; recurses to polyWalker0.
+polyWalker1 :: Maybe t0 -> Maybe t0
+polyWalker1 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker0 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 10; recurses to polyWalker9.
+polyWalker10 :: Maybe t0 -> Maybe t0
+polyWalker10 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker9 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 100; recurses to polyWalker99.
+polyWalker100 :: Maybe t0 -> Maybe t0
+polyWalker100 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker99 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 101; recurses to polyWalker100.
+polyWalker101 :: Maybe t0 -> Maybe t0
+polyWalker101 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker100 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 102; recurses to polyWalker101.
+polyWalker102 :: Maybe t0 -> Maybe t0
+polyWalker102 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker101 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 103; recurses to polyWalker102.
+polyWalker103 :: Maybe t0 -> Maybe t0
+polyWalker103 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker102 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 104; recurses to polyWalker103.
+polyWalker104 :: Maybe t0 -> Maybe t0
+polyWalker104 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker103 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 105; recurses to polyWalker104.
+polyWalker105 :: Maybe t0 -> Maybe t0
+polyWalker105 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker104 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 106; recurses to polyWalker105.
+polyWalker106 :: Maybe t0 -> Maybe t0
+polyWalker106 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker105 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 107; recurses to polyWalker106.
+polyWalker107 :: Maybe t0 -> Maybe t0
+polyWalker107 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker106 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 108; recurses to polyWalker107.
+polyWalker108 :: Maybe t0 -> Maybe t0
+polyWalker108 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker107 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 109; recurses to polyWalker108.
+polyWalker109 :: Maybe t0 -> Maybe t0
+polyWalker109 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker108 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 11; recurses to polyWalker10.
+polyWalker11 :: Maybe t0 -> Maybe t0
+polyWalker11 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker10 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 110; recurses to polyWalker109.
+polyWalker110 :: Maybe t0 -> Maybe t0
+polyWalker110 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker109 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 111; recurses to polyWalker110.
+polyWalker111 :: Maybe t0 -> Maybe t0
+polyWalker111 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker110 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 112; recurses to polyWalker111.
+polyWalker112 :: Maybe t0 -> Maybe t0
+polyWalker112 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker111 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 113; recurses to polyWalker112.
+polyWalker113 :: Maybe t0 -> Maybe t0
+polyWalker113 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker112 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 114; recurses to polyWalker113.
+polyWalker114 :: Maybe t0 -> Maybe t0
+polyWalker114 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker113 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 115; recurses to polyWalker114.
+polyWalker115 :: Maybe t0 -> Maybe t0
+polyWalker115 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker114 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 116; recurses to polyWalker115.
+polyWalker116 :: Maybe t0 -> Maybe t0
+polyWalker116 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker115 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 117; recurses to polyWalker116.
+polyWalker117 :: Maybe t0 -> Maybe t0
+polyWalker117 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker116 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 118; recurses to polyWalker117.
+polyWalker118 :: Maybe t0 -> Maybe t0
+polyWalker118 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker117 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 119; recurses to polyWalker118.
+polyWalker119 :: Maybe t0 -> Maybe t0
+polyWalker119 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker118 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 12; recurses to polyWalker11.
+polyWalker12 :: Maybe t0 -> Maybe t0
+polyWalker12 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker11 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 120; recurses to polyWalker119.
+polyWalker120 :: Maybe t0 -> Maybe t0
+polyWalker120 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker119 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 121; recurses to polyWalker120.
+polyWalker121 :: Maybe t0 -> Maybe t0
+polyWalker121 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker120 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 122; recurses to polyWalker121.
+polyWalker122 :: Maybe t0 -> Maybe t0
+polyWalker122 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker121 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 123; recurses to polyWalker122.
+polyWalker123 :: Maybe t0 -> Maybe t0
+polyWalker123 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker122 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 124; recurses to polyWalker123.
+polyWalker124 :: Maybe t0 -> Maybe t0
+polyWalker124 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker123 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 125; recurses to polyWalker124.
+polyWalker125 :: Maybe t0 -> Maybe t0
+polyWalker125 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker124 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 126; recurses to polyWalker125.
+polyWalker126 :: Maybe t0 -> Maybe t0
+polyWalker126 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker125 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 127; recurses to polyWalker126.
+polyWalker127 :: Maybe t0 -> Maybe t0
+polyWalker127 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker126 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 128; recurses to polyWalker127.
+polyWalker128 :: Maybe t0 -> Maybe t0
+polyWalker128 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker127 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 129; recurses to polyWalker128.
+polyWalker129 :: Maybe t0 -> Maybe t0
+polyWalker129 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker128 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 13; recurses to polyWalker12.
+polyWalker13 :: Maybe t0 -> Maybe t0
+polyWalker13 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker12 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 130; recurses to polyWalker129.
+polyWalker130 :: Maybe t0 -> Maybe t0
+polyWalker130 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker129 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 131; recurses to polyWalker130.
+polyWalker131 :: Maybe t0 -> Maybe t0
+polyWalker131 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker130 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 132; recurses to polyWalker131.
+polyWalker132 :: Maybe t0 -> Maybe t0
+polyWalker132 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker131 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 133; recurses to polyWalker132.
+polyWalker133 :: Maybe t0 -> Maybe t0
+polyWalker133 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker132 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 134; recurses to polyWalker133.
+polyWalker134 :: Maybe t0 -> Maybe t0
+polyWalker134 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker133 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 135; recurses to polyWalker134.
+polyWalker135 :: Maybe t0 -> Maybe t0
+polyWalker135 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker134 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 136; recurses to polyWalker135.
+polyWalker136 :: Maybe t0 -> Maybe t0
+polyWalker136 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker135 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 137; recurses to polyWalker136.
+polyWalker137 :: Maybe t0 -> Maybe t0
+polyWalker137 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker136 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 138; recurses to polyWalker137.
+polyWalker138 :: Maybe t0 -> Maybe t0
+polyWalker138 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker137 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 139; recurses to polyWalker138.
+polyWalker139 :: Maybe t0 -> Maybe t0
+polyWalker139 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker138 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 14; recurses to polyWalker13.
+polyWalker14 :: Maybe t0 -> Maybe t0
+polyWalker14 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker13 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 140; recurses to polyWalker139.
+polyWalker140 :: Maybe t0 -> Maybe t0
+polyWalker140 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker139 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 141; recurses to polyWalker140.
+polyWalker141 :: Maybe t0 -> Maybe t0
+polyWalker141 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker140 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 142; recurses to polyWalker141.
+polyWalker142 :: Maybe t0 -> Maybe t0
+polyWalker142 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker141 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 143; recurses to polyWalker142.
+polyWalker143 :: Maybe t0 -> Maybe t0
+polyWalker143 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker142 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 144; recurses to polyWalker143.
+polyWalker144 :: Maybe t0 -> Maybe t0
+polyWalker144 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker143 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 145; recurses to polyWalker144.
+polyWalker145 :: Maybe t0 -> Maybe t0
+polyWalker145 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker144 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 146; recurses to polyWalker145.
+polyWalker146 :: Maybe t0 -> Maybe t0
+polyWalker146 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker145 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 147; recurses to polyWalker146.
+polyWalker147 :: Maybe t0 -> Maybe t0
+polyWalker147 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker146 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 148; recurses to polyWalker147.
+polyWalker148 :: Maybe t0 -> Maybe t0
+polyWalker148 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker147 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 149; recurses to polyWalker148.
+polyWalker149 :: Maybe t0 -> Maybe t0
+polyWalker149 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker148 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 15; recurses to polyWalker14.
+polyWalker15 :: Maybe t0 -> Maybe t0
+polyWalker15 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker14 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 150; recurses to polyWalker149.
+polyWalker150 :: Maybe t0 -> Maybe t0
+polyWalker150 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker149 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 151; recurses to polyWalker150.
+polyWalker151 :: Maybe t0 -> Maybe t0
+polyWalker151 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker150 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 152; recurses to polyWalker151.
+polyWalker152 :: Maybe t0 -> Maybe t0
+polyWalker152 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker151 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 153; recurses to polyWalker152.
+polyWalker153 :: Maybe t0 -> Maybe t0
+polyWalker153 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker152 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 154; recurses to polyWalker153.
+polyWalker154 :: Maybe t0 -> Maybe t0
+polyWalker154 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker153 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 155; recurses to polyWalker154.
+polyWalker155 :: Maybe t0 -> Maybe t0
+polyWalker155 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker154 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 156; recurses to polyWalker155.
+polyWalker156 :: Maybe t0 -> Maybe t0
+polyWalker156 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker155 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 157; recurses to polyWalker156.
+polyWalker157 :: Maybe t0 -> Maybe t0
+polyWalker157 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker156 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 158; recurses to polyWalker157.
+polyWalker158 :: Maybe t0 -> Maybe t0
+polyWalker158 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker157 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 159; recurses to polyWalker158.
+polyWalker159 :: Maybe t0 -> Maybe t0
+polyWalker159 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker158 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 16; recurses to polyWalker15.
+polyWalker16 :: Maybe t0 -> Maybe t0
+polyWalker16 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker15 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 160; recurses to polyWalker159.
+polyWalker160 :: Maybe t0 -> Maybe t0
+polyWalker160 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker159 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 161; recurses to polyWalker160.
+polyWalker161 :: Maybe t0 -> Maybe t0
+polyWalker161 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker160 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 162; recurses to polyWalker161.
+polyWalker162 :: Maybe t0 -> Maybe t0
+polyWalker162 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker161 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 163; recurses to polyWalker162.
+polyWalker163 :: Maybe t0 -> Maybe t0
+polyWalker163 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker162 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 164; recurses to polyWalker163.
+polyWalker164 :: Maybe t0 -> Maybe t0
+polyWalker164 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker163 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 165; recurses to polyWalker164.
+polyWalker165 :: Maybe t0 -> Maybe t0
+polyWalker165 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker164 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 166; recurses to polyWalker165.
+polyWalker166 :: Maybe t0 -> Maybe t0
+polyWalker166 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker165 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 167; recurses to polyWalker166.
+polyWalker167 :: Maybe t0 -> Maybe t0
+polyWalker167 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker166 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 168; recurses to polyWalker167.
+polyWalker168 :: Maybe t0 -> Maybe t0
+polyWalker168 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker167 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 169; recurses to polyWalker168.
+polyWalker169 :: Maybe t0 -> Maybe t0
+polyWalker169 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker168 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 17; recurses to polyWalker16.
+polyWalker17 :: Maybe t0 -> Maybe t0
+polyWalker17 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker16 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 170; recurses to polyWalker169.
+polyWalker170 :: Maybe t0 -> Maybe t0
+polyWalker170 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker169 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 171; recurses to polyWalker170.
+polyWalker171 :: Maybe t0 -> Maybe t0
+polyWalker171 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker170 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 172; recurses to polyWalker171.
+polyWalker172 :: Maybe t0 -> Maybe t0
+polyWalker172 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker171 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 173; recurses to polyWalker172.
+polyWalker173 :: Maybe t0 -> Maybe t0
+polyWalker173 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker172 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 174; recurses to polyWalker173.
+polyWalker174 :: Maybe t0 -> Maybe t0
+polyWalker174 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker173 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 175; recurses to polyWalker174.
+polyWalker175 :: Maybe t0 -> Maybe t0
+polyWalker175 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker174 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 176; recurses to polyWalker175.
+polyWalker176 :: Maybe t0 -> Maybe t0
+polyWalker176 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker175 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 177; recurses to polyWalker176.
+polyWalker177 :: Maybe t0 -> Maybe t0
+polyWalker177 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker176 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 178; recurses to polyWalker177.
+polyWalker178 :: Maybe t0 -> Maybe t0
+polyWalker178 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker177 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 179; recurses to polyWalker178.
+polyWalker179 :: Maybe t0 -> Maybe t0
+polyWalker179 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker178 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 18; recurses to polyWalker17.
+polyWalker18 :: Maybe t0 -> Maybe t0
+polyWalker18 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker17 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 180; recurses to polyWalker179.
+polyWalker180 :: Maybe t0 -> Maybe t0
+polyWalker180 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker179 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 181; recurses to polyWalker180.
+polyWalker181 :: Maybe t0 -> Maybe t0
+polyWalker181 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker180 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 182; recurses to polyWalker181.
+polyWalker182 :: Maybe t0 -> Maybe t0
+polyWalker182 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker181 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 183; recurses to polyWalker182.
+polyWalker183 :: Maybe t0 -> Maybe t0
+polyWalker183 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker182 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 184; recurses to polyWalker183.
+polyWalker184 :: Maybe t0 -> Maybe t0
+polyWalker184 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker183 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 185; recurses to polyWalker184.
+polyWalker185 :: Maybe t0 -> Maybe t0
+polyWalker185 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker184 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 186; recurses to polyWalker185.
+polyWalker186 :: Maybe t0 -> Maybe t0
+polyWalker186 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker185 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 187; recurses to polyWalker186.
+polyWalker187 :: Maybe t0 -> Maybe t0
+polyWalker187 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker186 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 188; recurses to polyWalker187.
+polyWalker188 :: Maybe t0 -> Maybe t0
+polyWalker188 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker187 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 189; recurses to polyWalker188.
+polyWalker189 :: Maybe t0 -> Maybe t0
+polyWalker189 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker188 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 19; recurses to polyWalker18.
+polyWalker19 :: Maybe t0 -> Maybe t0
+polyWalker19 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker18 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 190; recurses to polyWalker189.
+polyWalker190 :: Maybe t0 -> Maybe t0
+polyWalker190 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker189 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 191; recurses to polyWalker190.
+polyWalker191 :: Maybe t0 -> Maybe t0
+polyWalker191 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker190 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 192; recurses to polyWalker191.
+polyWalker192 :: Maybe t0 -> Maybe t0
+polyWalker192 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker191 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 193; recurses to polyWalker192.
+polyWalker193 :: Maybe t0 -> Maybe t0
+polyWalker193 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker192 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 194; recurses to polyWalker193.
+polyWalker194 :: Maybe t0 -> Maybe t0
+polyWalker194 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker193 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 195; recurses to polyWalker194.
+polyWalker195 :: Maybe t0 -> Maybe t0
+polyWalker195 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker194 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 196; recurses to polyWalker195.
+polyWalker196 :: Maybe t0 -> Maybe t0
+polyWalker196 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker195 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 197; recurses to polyWalker196.
+polyWalker197 :: Maybe t0 -> Maybe t0
+polyWalker197 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker196 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 198; recurses to polyWalker197.
+polyWalker198 :: Maybe t0 -> Maybe t0
+polyWalker198 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker197 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 199; recurses to polyWalker198.
+polyWalker199 :: Maybe t0 -> Maybe t0
+polyWalker199 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker198 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 2; recurses to polyWalker1.
+polyWalker2 :: Maybe t0 -> Maybe t0
+polyWalker2 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker1 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 20; recurses to polyWalker19.
+polyWalker20 :: Maybe t0 -> Maybe t0
+polyWalker20 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker19 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 200; recurses to polyWalker199.
+polyWalker200 :: Maybe t0 -> Maybe t0
+polyWalker200 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker199 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 201; recurses to polyWalker200.
+polyWalker201 :: Maybe t0 -> Maybe t0
+polyWalker201 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker200 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 202; recurses to polyWalker201.
+polyWalker202 :: Maybe t0 -> Maybe t0
+polyWalker202 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker201 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 203; recurses to polyWalker202.
+polyWalker203 :: Maybe t0 -> Maybe t0
+polyWalker203 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker202 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 204; recurses to polyWalker203.
+polyWalker204 :: Maybe t0 -> Maybe t0
+polyWalker204 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker203 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 205; recurses to polyWalker204.
+polyWalker205 :: Maybe t0 -> Maybe t0
+polyWalker205 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker204 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 206; recurses to polyWalker205.
+polyWalker206 :: Maybe t0 -> Maybe t0
+polyWalker206 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker205 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 207; recurses to polyWalker206.
+polyWalker207 :: Maybe t0 -> Maybe t0
+polyWalker207 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker206 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 208; recurses to polyWalker207.
+polyWalker208 :: Maybe t0 -> Maybe t0
+polyWalker208 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker207 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 209; recurses to polyWalker208.
+polyWalker209 :: Maybe t0 -> Maybe t0
+polyWalker209 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker208 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 21; recurses to polyWalker20.
+polyWalker21 :: Maybe t0 -> Maybe t0
+polyWalker21 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker20 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 210; recurses to polyWalker209.
+polyWalker210 :: Maybe t0 -> Maybe t0
+polyWalker210 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker209 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 211; recurses to polyWalker210.
+polyWalker211 :: Maybe t0 -> Maybe t0
+polyWalker211 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker210 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 212; recurses to polyWalker211.
+polyWalker212 :: Maybe t0 -> Maybe t0
+polyWalker212 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker211 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 213; recurses to polyWalker212.
+polyWalker213 :: Maybe t0 -> Maybe t0
+polyWalker213 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker212 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 214; recurses to polyWalker213.
+polyWalker214 :: Maybe t0 -> Maybe t0
+polyWalker214 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker213 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 215; recurses to polyWalker214.
+polyWalker215 :: Maybe t0 -> Maybe t0
+polyWalker215 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker214 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 216; recurses to polyWalker215.
+polyWalker216 :: Maybe t0 -> Maybe t0
+polyWalker216 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker215 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 217; recurses to polyWalker216.
+polyWalker217 :: Maybe t0 -> Maybe t0
+polyWalker217 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker216 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 218; recurses to polyWalker217.
+polyWalker218 :: Maybe t0 -> Maybe t0
+polyWalker218 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker217 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 219; recurses to polyWalker218.
+polyWalker219 :: Maybe t0 -> Maybe t0
+polyWalker219 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker218 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 22; recurses to polyWalker21.
+polyWalker22 :: Maybe t0 -> Maybe t0
+polyWalker22 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker21 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 220; recurses to polyWalker219.
+polyWalker220 :: Maybe t0 -> Maybe t0
+polyWalker220 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker219 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 221; recurses to polyWalker220.
+polyWalker221 :: Maybe t0 -> Maybe t0
+polyWalker221 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker220 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 222; recurses to polyWalker221.
+polyWalker222 :: Maybe t0 -> Maybe t0
+polyWalker222 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker221 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 223; recurses to polyWalker222.
+polyWalker223 :: Maybe t0 -> Maybe t0
+polyWalker223 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker222 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 224; recurses to polyWalker223.
+polyWalker224 :: Maybe t0 -> Maybe t0
+polyWalker224 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker223 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 225; recurses to polyWalker224.
+polyWalker225 :: Maybe t0 -> Maybe t0
+polyWalker225 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker224 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 226; recurses to polyWalker225.
+polyWalker226 :: Maybe t0 -> Maybe t0
+polyWalker226 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker225 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 227; recurses to polyWalker226.
+polyWalker227 :: Maybe t0 -> Maybe t0
+polyWalker227 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker226 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 228; recurses to polyWalker227.
+polyWalker228 :: Maybe t0 -> Maybe t0
+polyWalker228 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker227 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 229; recurses to polyWalker228.
+polyWalker229 :: Maybe t0 -> Maybe t0
+polyWalker229 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker228 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 23; recurses to polyWalker22.
+polyWalker23 :: Maybe t0 -> Maybe t0
+polyWalker23 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker22 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 230; recurses to polyWalker229.
+polyWalker230 :: Maybe t0 -> Maybe t0
+polyWalker230 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker229 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 231; recurses to polyWalker230.
+polyWalker231 :: Maybe t0 -> Maybe t0
+polyWalker231 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker230 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 232; recurses to polyWalker231.
+polyWalker232 :: Maybe t0 -> Maybe t0
+polyWalker232 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker231 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 233; recurses to polyWalker232.
+polyWalker233 :: Maybe t0 -> Maybe t0
+polyWalker233 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker232 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 234; recurses to polyWalker233.
+polyWalker234 :: Maybe t0 -> Maybe t0
+polyWalker234 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker233 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 235; recurses to polyWalker234.
+polyWalker235 :: Maybe t0 -> Maybe t0
+polyWalker235 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker234 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 236; recurses to polyWalker235.
+polyWalker236 :: Maybe t0 -> Maybe t0
+polyWalker236 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker235 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 237; recurses to polyWalker236.
+polyWalker237 :: Maybe t0 -> Maybe t0
+polyWalker237 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker236 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 238; recurses to polyWalker237.
+polyWalker238 :: Maybe t0 -> Maybe t0
+polyWalker238 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker237 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 239; recurses to polyWalker238.
+polyWalker239 :: Maybe t0 -> Maybe t0
+polyWalker239 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker238 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 24; recurses to polyWalker23.
+polyWalker24 :: Maybe t0 -> Maybe t0
+polyWalker24 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker23 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 240; recurses to polyWalker239.
+polyWalker240 :: Maybe t0 -> Maybe t0
+polyWalker240 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker239 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 241; recurses to polyWalker240.
+polyWalker241 :: Maybe t0 -> Maybe t0
+polyWalker241 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker240 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 242; recurses to polyWalker241.
+polyWalker242 :: Maybe t0 -> Maybe t0
+polyWalker242 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker241 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 243; recurses to polyWalker242.
+polyWalker243 :: Maybe t0 -> Maybe t0
+polyWalker243 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker242 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 244; recurses to polyWalker243.
+polyWalker244 :: Maybe t0 -> Maybe t0
+polyWalker244 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker243 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 245; recurses to polyWalker244.
+polyWalker245 :: Maybe t0 -> Maybe t0
+polyWalker245 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker244 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 246; recurses to polyWalker245.
+polyWalker246 :: Maybe t0 -> Maybe t0
+polyWalker246 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker245 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 247; recurses to polyWalker246.
+polyWalker247 :: Maybe t0 -> Maybe t0
+polyWalker247 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker246 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 248; recurses to polyWalker247.
+polyWalker248 :: Maybe t0 -> Maybe t0
+polyWalker248 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker247 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 249; recurses to polyWalker248.
+polyWalker249 :: Maybe t0 -> Maybe t0
+polyWalker249 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker248 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 25; recurses to polyWalker24.
+polyWalker25 :: Maybe t0 -> Maybe t0
+polyWalker25 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker24 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 250; recurses to polyWalker249.
+polyWalker250 :: Maybe t0 -> Maybe t0
+polyWalker250 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker249 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 251; recurses to polyWalker250.
+polyWalker251 :: Maybe t0 -> Maybe t0
+polyWalker251 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker250 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 252; recurses to polyWalker251.
+polyWalker252 :: Maybe t0 -> Maybe t0
+polyWalker252 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker251 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 253; recurses to polyWalker252.
+polyWalker253 :: Maybe t0 -> Maybe t0
+polyWalker253 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker252 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 254; recurses to polyWalker253.
+polyWalker254 :: Maybe t0 -> Maybe t0
+polyWalker254 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker253 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 255; recurses to polyWalker254.
+polyWalker255 :: Maybe t0 -> Maybe t0
+polyWalker255 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker254 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 256; recurses to polyWalker255.
+polyWalker256 :: Maybe t0 -> Maybe t0
+polyWalker256 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker255 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 257; recurses to polyWalker256.
+polyWalker257 :: Maybe t0 -> Maybe t0
+polyWalker257 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker256 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 258; recurses to polyWalker257.
+polyWalker258 :: Maybe t0 -> Maybe t0
+polyWalker258 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker257 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 259; recurses to polyWalker258.
+polyWalker259 :: Maybe t0 -> Maybe t0
+polyWalker259 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker258 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 26; recurses to polyWalker25.
+polyWalker26 :: Maybe t0 -> Maybe t0
+polyWalker26 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker25 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 260; recurses to polyWalker259.
+polyWalker260 :: Maybe t0 -> Maybe t0
+polyWalker260 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker259 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 261; recurses to polyWalker260.
+polyWalker261 :: Maybe t0 -> Maybe t0
+polyWalker261 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker260 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 262; recurses to polyWalker261.
+polyWalker262 :: Maybe t0 -> Maybe t0
+polyWalker262 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker261 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 263; recurses to polyWalker262.
+polyWalker263 :: Maybe t0 -> Maybe t0
+polyWalker263 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker262 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 264; recurses to polyWalker263.
+polyWalker264 :: Maybe t0 -> Maybe t0
+polyWalker264 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker263 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 265; recurses to polyWalker264.
+polyWalker265 :: Maybe t0 -> Maybe t0
+polyWalker265 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker264 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 266; recurses to polyWalker265.
+polyWalker266 :: Maybe t0 -> Maybe t0
+polyWalker266 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker265 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 267; recurses to polyWalker266.
+polyWalker267 :: Maybe t0 -> Maybe t0
+polyWalker267 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker266 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 268; recurses to polyWalker267.
+polyWalker268 :: Maybe t0 -> Maybe t0
+polyWalker268 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker267 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 269; recurses to polyWalker268.
+polyWalker269 :: Maybe t0 -> Maybe t0
+polyWalker269 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker268 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 27; recurses to polyWalker26.
+polyWalker27 :: Maybe t0 -> Maybe t0
+polyWalker27 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker26 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 270; recurses to polyWalker269.
+polyWalker270 :: Maybe t0 -> Maybe t0
+polyWalker270 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker269 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 271; recurses to polyWalker270.
+polyWalker271 :: Maybe t0 -> Maybe t0
+polyWalker271 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker270 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 272; recurses to polyWalker271.
+polyWalker272 :: Maybe t0 -> Maybe t0
+polyWalker272 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker271 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 273; recurses to polyWalker272.
+polyWalker273 :: Maybe t0 -> Maybe t0
+polyWalker273 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker272 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 274; recurses to polyWalker273.
+polyWalker274 :: Maybe t0 -> Maybe t0
+polyWalker274 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker273 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 275; recurses to polyWalker274.
+polyWalker275 :: Maybe t0 -> Maybe t0
+polyWalker275 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker274 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 276; recurses to polyWalker275.
+polyWalker276 :: Maybe t0 -> Maybe t0
+polyWalker276 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker275 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 277; recurses to polyWalker276.
+polyWalker277 :: Maybe t0 -> Maybe t0
+polyWalker277 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker276 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 278; recurses to polyWalker277.
+polyWalker278 :: Maybe t0 -> Maybe t0
+polyWalker278 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker277 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 279; recurses to polyWalker278.
+polyWalker279 :: Maybe t0 -> Maybe t0
+polyWalker279 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker278 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 28; recurses to polyWalker27.
+polyWalker28 :: Maybe t0 -> Maybe t0
+polyWalker28 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker27 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 280; recurses to polyWalker279.
+polyWalker280 :: Maybe t0 -> Maybe t0
+polyWalker280 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker279 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 281; recurses to polyWalker280.
+polyWalker281 :: Maybe t0 -> Maybe t0
+polyWalker281 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker280 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 282; recurses to polyWalker281.
+polyWalker282 :: Maybe t0 -> Maybe t0
+polyWalker282 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker281 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 283; recurses to polyWalker282.
+polyWalker283 :: Maybe t0 -> Maybe t0
+polyWalker283 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker282 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 284; recurses to polyWalker283.
+polyWalker284 :: Maybe t0 -> Maybe t0
+polyWalker284 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker283 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 285; recurses to polyWalker284.
+polyWalker285 :: Maybe t0 -> Maybe t0
+polyWalker285 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker284 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 286; recurses to polyWalker285.
+polyWalker286 :: Maybe t0 -> Maybe t0
+polyWalker286 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker285 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 287; recurses to polyWalker286.
+polyWalker287 :: Maybe t0 -> Maybe t0
+polyWalker287 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker286 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 288; recurses to polyWalker287.
+polyWalker288 :: Maybe t0 -> Maybe t0
+polyWalker288 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker287 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 289; recurses to polyWalker288.
+polyWalker289 :: Maybe t0 -> Maybe t0
+polyWalker289 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker288 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 29; recurses to polyWalker28.
+polyWalker29 :: Maybe t0 -> Maybe t0
+polyWalker29 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker28 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 290; recurses to polyWalker289.
+polyWalker290 :: Maybe t0 -> Maybe t0
+polyWalker290 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker289 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 291; recurses to polyWalker290.
+polyWalker291 :: Maybe t0 -> Maybe t0
+polyWalker291 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker290 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 292; recurses to polyWalker291.
+polyWalker292 :: Maybe t0 -> Maybe t0
+polyWalker292 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker291 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 293; recurses to polyWalker292.
+polyWalker293 :: Maybe t0 -> Maybe t0
+polyWalker293 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker292 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 294; recurses to polyWalker293.
+polyWalker294 :: Maybe t0 -> Maybe t0
+polyWalker294 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker293 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 295; recurses to polyWalker294.
+polyWalker295 :: Maybe t0 -> Maybe t0
+polyWalker295 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker294 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 296; recurses to polyWalker295.
+polyWalker296 :: Maybe t0 -> Maybe t0
+polyWalker296 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker295 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 297; recurses to polyWalker296.
+polyWalker297 :: Maybe t0 -> Maybe t0
+polyWalker297 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker296 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 298; recurses to polyWalker297.
+polyWalker298 :: Maybe t0 -> Maybe t0
+polyWalker298 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker297 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 299; recurses to polyWalker298.
+polyWalker299 :: Maybe t0 -> Maybe t0
+polyWalker299 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker298 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 3; recurses to polyWalker2.
+polyWalker3 :: Maybe t0 -> Maybe t0
+polyWalker3 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker2 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 30; recurses to polyWalker29.
+polyWalker30 :: Maybe t0 -> Maybe t0
+polyWalker30 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker29 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 300; recurses to polyWalker299.
+polyWalker300 :: Maybe t0 -> Maybe t0
+polyWalker300 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker299 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 301; recurses to polyWalker300.
+polyWalker301 :: Maybe t0 -> Maybe t0
+polyWalker301 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker300 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 302; recurses to polyWalker301.
+polyWalker302 :: Maybe t0 -> Maybe t0
+polyWalker302 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker301 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 303; recurses to polyWalker302.
+polyWalker303 :: Maybe t0 -> Maybe t0
+polyWalker303 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker302 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 304; recurses to polyWalker303.
+polyWalker304 :: Maybe t0 -> Maybe t0
+polyWalker304 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker303 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 305; recurses to polyWalker304.
+polyWalker305 :: Maybe t0 -> Maybe t0
+polyWalker305 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker304 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 306; recurses to polyWalker305.
+polyWalker306 :: Maybe t0 -> Maybe t0
+polyWalker306 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker305 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 307; recurses to polyWalker306.
+polyWalker307 :: Maybe t0 -> Maybe t0
+polyWalker307 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker306 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 308; recurses to polyWalker307.
+polyWalker308 :: Maybe t0 -> Maybe t0
+polyWalker308 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker307 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 309; recurses to polyWalker308.
+polyWalker309 :: Maybe t0 -> Maybe t0
+polyWalker309 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker308 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 31; recurses to polyWalker30.
+polyWalker31 :: Maybe t0 -> Maybe t0
+polyWalker31 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker30 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 310; recurses to polyWalker309.
+polyWalker310 :: Maybe t0 -> Maybe t0
+polyWalker310 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker309 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 311; recurses to polyWalker310.
+polyWalker311 :: Maybe t0 -> Maybe t0
+polyWalker311 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker310 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 312; recurses to polyWalker311.
+polyWalker312 :: Maybe t0 -> Maybe t0
+polyWalker312 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker311 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 313; recurses to polyWalker312.
+polyWalker313 :: Maybe t0 -> Maybe t0
+polyWalker313 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker312 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 314; recurses to polyWalker313.
+polyWalker314 :: Maybe t0 -> Maybe t0
+polyWalker314 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker313 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 315; recurses to polyWalker314.
+polyWalker315 :: Maybe t0 -> Maybe t0
+polyWalker315 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker314 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 316; recurses to polyWalker315.
+polyWalker316 :: Maybe t0 -> Maybe t0
+polyWalker316 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker315 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 317; recurses to polyWalker316.
+polyWalker317 :: Maybe t0 -> Maybe t0
+polyWalker317 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker316 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 318; recurses to polyWalker317.
+polyWalker318 :: Maybe t0 -> Maybe t0
+polyWalker318 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker317 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 319; recurses to polyWalker318.
+polyWalker319 :: Maybe t0 -> Maybe t0
+polyWalker319 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker318 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 32; recurses to polyWalker31.
+polyWalker32 :: Maybe t0 -> Maybe t0
+polyWalker32 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker31 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 320; recurses to polyWalker319.
+polyWalker320 :: Maybe t0 -> Maybe t0
+polyWalker320 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker319 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 321; recurses to polyWalker320.
+polyWalker321 :: Maybe t0 -> Maybe t0
+polyWalker321 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker320 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 322; recurses to polyWalker321.
+polyWalker322 :: Maybe t0 -> Maybe t0
+polyWalker322 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker321 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 323; recurses to polyWalker322.
+polyWalker323 :: Maybe t0 -> Maybe t0
+polyWalker323 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker322 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 324; recurses to polyWalker323.
+polyWalker324 :: Maybe t0 -> Maybe t0
+polyWalker324 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker323 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 325; recurses to polyWalker324.
+polyWalker325 :: Maybe t0 -> Maybe t0
+polyWalker325 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker324 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 326; recurses to polyWalker325.
+polyWalker326 :: Maybe t0 -> Maybe t0
+polyWalker326 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker325 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 327; recurses to polyWalker326.
+polyWalker327 :: Maybe t0 -> Maybe t0
+polyWalker327 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker326 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 328; recurses to polyWalker327.
+polyWalker328 :: Maybe t0 -> Maybe t0
+polyWalker328 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker327 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 329; recurses to polyWalker328.
+polyWalker329 :: Maybe t0 -> Maybe t0
+polyWalker329 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker328 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 33; recurses to polyWalker32.
+polyWalker33 :: Maybe t0 -> Maybe t0
+polyWalker33 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker32 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 330; recurses to polyWalker329.
+polyWalker330 :: Maybe t0 -> Maybe t0
+polyWalker330 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker329 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 331; recurses to polyWalker330.
+polyWalker331 :: Maybe t0 -> Maybe t0
+polyWalker331 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker330 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 332; recurses to polyWalker331.
+polyWalker332 :: Maybe t0 -> Maybe t0
+polyWalker332 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker331 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 333; recurses to polyWalker332.
+polyWalker333 :: Maybe t0 -> Maybe t0
+polyWalker333 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker332 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 334; recurses to polyWalker333.
+polyWalker334 :: Maybe t0 -> Maybe t0
+polyWalker334 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker333 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 335; recurses to polyWalker334.
+polyWalker335 :: Maybe t0 -> Maybe t0
+polyWalker335 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker334 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 336; recurses to polyWalker335.
+polyWalker336 :: Maybe t0 -> Maybe t0
+polyWalker336 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker335 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 337; recurses to polyWalker336.
+polyWalker337 :: Maybe t0 -> Maybe t0
+polyWalker337 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker336 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 338; recurses to polyWalker337.
+polyWalker338 :: Maybe t0 -> Maybe t0
+polyWalker338 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker337 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 339; recurses to polyWalker338.
+polyWalker339 :: Maybe t0 -> Maybe t0
+polyWalker339 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker338 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 34; recurses to polyWalker33.
+polyWalker34 :: Maybe t0 -> Maybe t0
+polyWalker34 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker33 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 340; recurses to polyWalker339.
+polyWalker340 :: Maybe t0 -> Maybe t0
+polyWalker340 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker339 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 341; recurses to polyWalker340.
+polyWalker341 :: Maybe t0 -> Maybe t0
+polyWalker341 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker340 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 342; recurses to polyWalker341.
+polyWalker342 :: Maybe t0 -> Maybe t0
+polyWalker342 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker341 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 343; recurses to polyWalker342.
+polyWalker343 :: Maybe t0 -> Maybe t0
+polyWalker343 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker342 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 344; recurses to polyWalker343.
+polyWalker344 :: Maybe t0 -> Maybe t0
+polyWalker344 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker343 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 345; recurses to polyWalker344.
+polyWalker345 :: Maybe t0 -> Maybe t0
+polyWalker345 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker344 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 346; recurses to polyWalker345.
+polyWalker346 :: Maybe t0 -> Maybe t0
+polyWalker346 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker345 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 347; recurses to polyWalker346.
+polyWalker347 :: Maybe t0 -> Maybe t0
+polyWalker347 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker346 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 348; recurses to polyWalker347.
+polyWalker348 :: Maybe t0 -> Maybe t0
+polyWalker348 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker347 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 349; recurses to polyWalker348.
+polyWalker349 :: Maybe t0 -> Maybe t0
+polyWalker349 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker348 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 35; recurses to polyWalker34.
+polyWalker35 :: Maybe t0 -> Maybe t0
+polyWalker35 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker34 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 350; recurses to polyWalker349.
+polyWalker350 :: Maybe t0 -> Maybe t0
+polyWalker350 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker349 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 351; recurses to polyWalker350.
+polyWalker351 :: Maybe t0 -> Maybe t0
+polyWalker351 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker350 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 352; recurses to polyWalker351.
+polyWalker352 :: Maybe t0 -> Maybe t0
+polyWalker352 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker351 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 353; recurses to polyWalker352.
+polyWalker353 :: Maybe t0 -> Maybe t0
+polyWalker353 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker352 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 354; recurses to polyWalker353.
+polyWalker354 :: Maybe t0 -> Maybe t0
+polyWalker354 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker353 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 355; recurses to polyWalker354.
+polyWalker355 :: Maybe t0 -> Maybe t0
+polyWalker355 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker354 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 356; recurses to polyWalker355.
+polyWalker356 :: Maybe t0 -> Maybe t0
+polyWalker356 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker355 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 357; recurses to polyWalker356.
+polyWalker357 :: Maybe t0 -> Maybe t0
+polyWalker357 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker356 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 358; recurses to polyWalker357.
+polyWalker358 :: Maybe t0 -> Maybe t0
+polyWalker358 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker357 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 359; recurses to polyWalker358.
+polyWalker359 :: Maybe t0 -> Maybe t0
+polyWalker359 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker358 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 36; recurses to polyWalker35.
+polyWalker36 :: Maybe t0 -> Maybe t0
+polyWalker36 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker35 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 360; recurses to polyWalker359.
+polyWalker360 :: Maybe t0 -> Maybe t0
+polyWalker360 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker359 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 361; recurses to polyWalker360.
+polyWalker361 :: Maybe t0 -> Maybe t0
+polyWalker361 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker360 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 362; recurses to polyWalker361.
+polyWalker362 :: Maybe t0 -> Maybe t0
+polyWalker362 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker361 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 363; recurses to polyWalker362.
+polyWalker363 :: Maybe t0 -> Maybe t0
+polyWalker363 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker362 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 364; recurses to polyWalker363.
+polyWalker364 :: Maybe t0 -> Maybe t0
+polyWalker364 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker363 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 365; recurses to polyWalker364.
+polyWalker365 :: Maybe t0 -> Maybe t0
+polyWalker365 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker364 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 366; recurses to polyWalker365.
+polyWalker366 :: Maybe t0 -> Maybe t0
+polyWalker366 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker365 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 367; recurses to polyWalker366.
+polyWalker367 :: Maybe t0 -> Maybe t0
+polyWalker367 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker366 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 368; recurses to polyWalker367.
+polyWalker368 :: Maybe t0 -> Maybe t0
+polyWalker368 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker367 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 369; recurses to polyWalker368.
+polyWalker369 :: Maybe t0 -> Maybe t0
+polyWalker369 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker368 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 37; recurses to polyWalker36.
+polyWalker37 :: Maybe t0 -> Maybe t0
+polyWalker37 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker36 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 370; recurses to polyWalker369.
+polyWalker370 :: Maybe t0 -> Maybe t0
+polyWalker370 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker369 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 371; recurses to polyWalker370.
+polyWalker371 :: Maybe t0 -> Maybe t0
+polyWalker371 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker370 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 372; recurses to polyWalker371.
+polyWalker372 :: Maybe t0 -> Maybe t0
+polyWalker372 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker371 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 373; recurses to polyWalker372.
+polyWalker373 :: Maybe t0 -> Maybe t0
+polyWalker373 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker372 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 374; recurses to polyWalker373.
+polyWalker374 :: Maybe t0 -> Maybe t0
+polyWalker374 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker373 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 375; recurses to polyWalker374.
+polyWalker375 :: Maybe t0 -> Maybe t0
+polyWalker375 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker374 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 376; recurses to polyWalker375.
+polyWalker376 :: Maybe t0 -> Maybe t0
+polyWalker376 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker375 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 377; recurses to polyWalker376.
+polyWalker377 :: Maybe t0 -> Maybe t0
+polyWalker377 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker376 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 378; recurses to polyWalker377.
+polyWalker378 :: Maybe t0 -> Maybe t0
+polyWalker378 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker377 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 379; recurses to polyWalker378.
+polyWalker379 :: Maybe t0 -> Maybe t0
+polyWalker379 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker378 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 38; recurses to polyWalker37.
+polyWalker38 :: Maybe t0 -> Maybe t0
+polyWalker38 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker37 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 380; recurses to polyWalker379.
+polyWalker380 :: Maybe t0 -> Maybe t0
+polyWalker380 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker379 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 381; recurses to polyWalker380.
+polyWalker381 :: Maybe t0 -> Maybe t0
+polyWalker381 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker380 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 382; recurses to polyWalker381.
+polyWalker382 :: Maybe t0 -> Maybe t0
+polyWalker382 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker381 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 383; recurses to polyWalker382.
+polyWalker383 :: Maybe t0 -> Maybe t0
+polyWalker383 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker382 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 384; recurses to polyWalker383.
+polyWalker384 :: Maybe t0 -> Maybe t0
+polyWalker384 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker383 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 385; recurses to polyWalker384.
+polyWalker385 :: Maybe t0 -> Maybe t0
+polyWalker385 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker384 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 386; recurses to polyWalker385.
+polyWalker386 :: Maybe t0 -> Maybe t0
+polyWalker386 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker385 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 387; recurses to polyWalker386.
+polyWalker387 :: Maybe t0 -> Maybe t0
+polyWalker387 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker386 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 388; recurses to polyWalker387.
+polyWalker388 :: Maybe t0 -> Maybe t0
+polyWalker388 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker387 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 389; recurses to polyWalker388.
+polyWalker389 :: Maybe t0 -> Maybe t0
+polyWalker389 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker388 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 39; recurses to polyWalker38.
+polyWalker39 :: Maybe t0 -> Maybe t0
+polyWalker39 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker38 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 390; recurses to polyWalker389.
+polyWalker390 :: Maybe t0 -> Maybe t0
+polyWalker390 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker389 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 391; recurses to polyWalker390.
+polyWalker391 :: Maybe t0 -> Maybe t0
+polyWalker391 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker390 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 392; recurses to polyWalker391.
+polyWalker392 :: Maybe t0 -> Maybe t0
+polyWalker392 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker391 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 393; recurses to polyWalker392.
+polyWalker393 :: Maybe t0 -> Maybe t0
+polyWalker393 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker392 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 394; recurses to polyWalker393.
+polyWalker394 :: Maybe t0 -> Maybe t0
+polyWalker394 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker393 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 395; recurses to polyWalker394.
+polyWalker395 :: Maybe t0 -> Maybe t0
+polyWalker395 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker394 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 396; recurses to polyWalker395.
+polyWalker396 :: Maybe t0 -> Maybe t0
+polyWalker396 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker395 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 397; recurses to polyWalker396.
+polyWalker397 :: Maybe t0 -> Maybe t0
+polyWalker397 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker396 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 398; recurses to polyWalker397.
+polyWalker398 :: Maybe t0 -> Maybe t0
+polyWalker398 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker397 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 399; recurses to polyWalker398.
+polyWalker399 :: Maybe t0 -> Maybe t0
+polyWalker399 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker398 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 4; recurses to polyWalker3.
+polyWalker4 :: Maybe t0 -> Maybe t0
+polyWalker4 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker3 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 40; recurses to polyWalker39.
+polyWalker40 :: Maybe t0 -> Maybe t0
+polyWalker40 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker39 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 41; recurses to polyWalker40.
+polyWalker41 :: Maybe t0 -> Maybe t0
+polyWalker41 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker40 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 42; recurses to polyWalker41.
+polyWalker42 :: Maybe t0 -> Maybe t0
+polyWalker42 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker41 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 43; recurses to polyWalker42.
+polyWalker43 :: Maybe t0 -> Maybe t0
+polyWalker43 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker42 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 44; recurses to polyWalker43.
+polyWalker44 :: Maybe t0 -> Maybe t0
+polyWalker44 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker43 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 45; recurses to polyWalker44.
+polyWalker45 :: Maybe t0 -> Maybe t0
+polyWalker45 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker44 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 46; recurses to polyWalker45.
+polyWalker46 :: Maybe t0 -> Maybe t0
+polyWalker46 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker45 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 47; recurses to polyWalker46.
+polyWalker47 :: Maybe t0 -> Maybe t0
+polyWalker47 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker46 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 48; recurses to polyWalker47.
+polyWalker48 :: Maybe t0 -> Maybe t0
+polyWalker48 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker47 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 49; recurses to polyWalker48.
+polyWalker49 :: Maybe t0 -> Maybe t0
+polyWalker49 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker48 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 5; recurses to polyWalker4.
+polyWalker5 :: Maybe t0 -> Maybe t0
+polyWalker5 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker4 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 50; recurses to polyWalker49.
+polyWalker50 :: Maybe t0 -> Maybe t0
+polyWalker50 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker49 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 51; recurses to polyWalker50.
+polyWalker51 :: Maybe t0 -> Maybe t0
+polyWalker51 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker50 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 52; recurses to polyWalker51.
+polyWalker52 :: Maybe t0 -> Maybe t0
+polyWalker52 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker51 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 53; recurses to polyWalker52.
+polyWalker53 :: Maybe t0 -> Maybe t0
+polyWalker53 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker52 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 54; recurses to polyWalker53.
+polyWalker54 :: Maybe t0 -> Maybe t0
+polyWalker54 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker53 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 55; recurses to polyWalker54.
+polyWalker55 :: Maybe t0 -> Maybe t0
+polyWalker55 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker54 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 56; recurses to polyWalker55.
+polyWalker56 :: Maybe t0 -> Maybe t0
+polyWalker56 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker55 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 57; recurses to polyWalker56.
+polyWalker57 :: Maybe t0 -> Maybe t0
+polyWalker57 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker56 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 58; recurses to polyWalker57.
+polyWalker58 :: Maybe t0 -> Maybe t0
+polyWalker58 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker57 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 59; recurses to polyWalker58.
+polyWalker59 :: Maybe t0 -> Maybe t0
+polyWalker59 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker58 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 6; recurses to polyWalker5.
+polyWalker6 :: Maybe t0 -> Maybe t0
+polyWalker6 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker5 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 60; recurses to polyWalker59.
+polyWalker60 :: Maybe t0 -> Maybe t0
+polyWalker60 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker59 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 61; recurses to polyWalker60.
+polyWalker61 :: Maybe t0 -> Maybe t0
+polyWalker61 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker60 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 62; recurses to polyWalker61.
+polyWalker62 :: Maybe t0 -> Maybe t0
+polyWalker62 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker61 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 63; recurses to polyWalker62.
+polyWalker63 :: Maybe t0 -> Maybe t0
+polyWalker63 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker62 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 64; recurses to polyWalker63.
+polyWalker64 :: Maybe t0 -> Maybe t0
+polyWalker64 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker63 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 65; recurses to polyWalker64.
+polyWalker65 :: Maybe t0 -> Maybe t0
+polyWalker65 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker64 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 66; recurses to polyWalker65.
+polyWalker66 :: Maybe t0 -> Maybe t0
+polyWalker66 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker65 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 67; recurses to polyWalker66.
+polyWalker67 :: Maybe t0 -> Maybe t0
+polyWalker67 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker66 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 68; recurses to polyWalker67.
+polyWalker68 :: Maybe t0 -> Maybe t0
+polyWalker68 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker67 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 69; recurses to polyWalker68.
+polyWalker69 :: Maybe t0 -> Maybe t0
+polyWalker69 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker68 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 7; recurses to polyWalker6.
+polyWalker7 :: Maybe t0 -> Maybe t0
+polyWalker7 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker6 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 70; recurses to polyWalker69.
+polyWalker70 :: Maybe t0 -> Maybe t0
+polyWalker70 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker69 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 71; recurses to polyWalker70.
+polyWalker71 :: Maybe t0 -> Maybe t0
+polyWalker71 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker70 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 72; recurses to polyWalker71.
+polyWalker72 :: Maybe t0 -> Maybe t0
+polyWalker72 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker71 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 73; recurses to polyWalker72.
+polyWalker73 :: Maybe t0 -> Maybe t0
+polyWalker73 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker72 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 74; recurses to polyWalker73.
+polyWalker74 :: Maybe t0 -> Maybe t0
+polyWalker74 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker73 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 75; recurses to polyWalker74.
+polyWalker75 :: Maybe t0 -> Maybe t0
+polyWalker75 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker74 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 76; recurses to polyWalker75.
+polyWalker76 :: Maybe t0 -> Maybe t0
+polyWalker76 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker75 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 77; recurses to polyWalker76.
+polyWalker77 :: Maybe t0 -> Maybe t0
+polyWalker77 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker76 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 78; recurses to polyWalker77.
+polyWalker78 :: Maybe t0 -> Maybe t0
+polyWalker78 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker77 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 79; recurses to polyWalker78.
+polyWalker79 :: Maybe t0 -> Maybe t0
+polyWalker79 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker78 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 8; recurses to polyWalker7.
+polyWalker8 :: Maybe t0 -> Maybe t0
+polyWalker8 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker7 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 80; recurses to polyWalker79.
+polyWalker80 :: Maybe t0 -> Maybe t0
+polyWalker80 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker79 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 81; recurses to polyWalker80.
+polyWalker81 :: Maybe t0 -> Maybe t0
+polyWalker81 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker80 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 82; recurses to polyWalker81.
+polyWalker82 :: Maybe t0 -> Maybe t0
+polyWalker82 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker81 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 83; recurses to polyWalker82.
+polyWalker83 :: Maybe t0 -> Maybe t0
+polyWalker83 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker82 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 84; recurses to polyWalker83.
+polyWalker84 :: Maybe t0 -> Maybe t0
+polyWalker84 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker83 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 85; recurses to polyWalker84.
+polyWalker85 :: Maybe t0 -> Maybe t0
+polyWalker85 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker84 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 86; recurses to polyWalker85.
+polyWalker86 :: Maybe t0 -> Maybe t0
+polyWalker86 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker85 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 87; recurses to polyWalker86.
+polyWalker87 :: Maybe t0 -> Maybe t0
+polyWalker87 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker86 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 88; recurses to polyWalker87.
+polyWalker88 :: Maybe t0 -> Maybe t0
+polyWalker88 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker87 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 89; recurses to polyWalker88.
+polyWalker89 :: Maybe t0 -> Maybe t0
+polyWalker89 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker88 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 9; recurses to polyWalker8.
+polyWalker9 :: Maybe t0 -> Maybe t0
+polyWalker9 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker8 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 90; recurses to polyWalker89.
+polyWalker90 :: Maybe t0 -> Maybe t0
+polyWalker90 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker89 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 91; recurses to polyWalker90.
+polyWalker91 :: Maybe t0 -> Maybe t0
+polyWalker91 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker90 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 92; recurses to polyWalker91.
+polyWalker92 :: Maybe t0 -> Maybe t0
+polyWalker92 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker91 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 93; recurses to polyWalker92.
+polyWalker93 :: Maybe t0 -> Maybe t0
+polyWalker93 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker92 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 94; recurses to polyWalker93.
+polyWalker94 :: Maybe t0 -> Maybe t0
+polyWalker94 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker93 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 95; recurses to polyWalker94.
+polyWalker95 :: Maybe t0 -> Maybe t0
+polyWalker95 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker94 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 96; recurses to polyWalker95.
+polyWalker96 :: Maybe t0 -> Maybe t0
+polyWalker96 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker95 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 97; recurses to polyWalker96.
+polyWalker97 :: Maybe t0 -> Maybe t0
+polyWalker97 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker96 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 98; recurses to polyWalker97.
+polyWalker98 :: Maybe t0 -> Maybe t0
+polyWalker98 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker97 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
+-- | Polymorphic walker level 99; recurses to polyWalker98.
+polyWalker99 :: Maybe t0 -> Maybe t0
+polyWalker99 m =
+
+      let stepped = Optionals.bind m (\v -> polyWalker98 (Just v))
+      in (Optionals.cases stepped Nothing (\w -> Just w))
