[OCaml] High Intensity Training Online
feat Quantify HD1 extensions, drop rest-pause
Confine beyond-failure work to HD1's three techniques and record each as a count: forced reps and negatives count reps, a static hold counts seconds. Remove Rest_pause, which HD1 does not contain; the MVP is pure HD1. Plain int, no smart constructor. The core reifies HD1 and does not sanitize input; validating counts belongs at the app boundary, not in the pure domain. Downstream modules (persistence, web, presenter) and tests still reference the old variants and will be updated in a follow-up; this is a deliberate interface-first commit. The core library type-checks and formats clean on its own.
Changed files
lib/core/evidence.ml
@@ -1,5 +1,5 @@
1
1
module Stimulus = struct
2
Removed:
type extension = Forced_reps | Negatives | Rest_pause | Static_hold
2
Added:
type extension = Forced_reps of int | Negatives of int | Static_hold of int
3
3
4
4
type outcome =
5
5
| Positive_failure
@@ -9,13 +9,10 @@
9
9
| Positive_failure -> []
10
10
| Beyond_failure (first, rest) -> first :: rest
11
11
12
Removed:
let pp_extension ppf e =
13
Removed:
Format.pp_print_string ppf
14
Removed:
(match e with
15
Removed:
| Forced_reps -> "forced reps"
16
Removed:
| Negatives -> "negatives"
17
Removed:
| Rest_pause -> "rest-pause"
18
Removed:
| Static_hold -> "static hold")
12
Added:
let pp_extension ppf = function
13
Added:
| Forced_reps n -> Format.fprintf ppf "forced reps x %d" n
14
Added:
| Negatives n -> Format.fprintf ppf "negatives x %d" n
15
Added:
| Static_hold s -> Format.fprintf ppf "static hold %ds" s
19
16
20
17
module Effort = struct
21
18
type t = {
lib/core/evidence.mli
@@ -2,7 +2,14 @@
2
2
3
3
(** One performed drive to failure. *)
4
4
module Stimulus : sig
5
Removed:
type extension = Forced_reps | Negatives | Rest_pause | Static_hold
5
Added:
(** Effort past failure, quantified. Every HD1 extension is a count: forced
6
Added:
reps and negatives count reps, a static hold counts seconds. The three
7
Added:
techniques are the whole of HD1's beyond-failure work (HD1, "Training to
8
Added:
Failure", "Negatives", "Conversations with Dorian Yates"). *)
9
Added:
type extension =
10
Added:
| Forced_reps of int (** Additional assisted reps past failure. *)
11
Added:
| Negatives of int (** Additional lowerings past failure. *)
12
Added:
| Static_hold of int (** Hold in the contracted position, in seconds. *)
6
13
7
14
type outcome =
8
15
| Positive_failure