anchor.diff:                ) markers new_velocities
   
     // gravity only (for now).
  -  let apply_forces () =
  -    let v = Constants.gravity .* Constants.time_step
  +  let apply_forces dt =
  +    let v = Constants.gravity .* dt
       Seq.iter (fun (m: Coord) ->
                   for direction, neighbor in m.neighbors () do
                     match Grid.get neighbor with
  
positive.code:                 ) all_neighbors
  
    // convection by means of a backwards particle trace.
    let apply_convection () =
      let new_velocities = Seq.map (fun m ->
                                      let new_position = trace m Constants.time_step
                                      match Grid.get new_position with
                                        | Some c -> c.velocity
                                        | _ -> failwith "Backwards particle trace went too far."
  
negative.code:               ) markers
  
    // viscosity by evaluating the lapalacian on bordering fluid cells.
    let apply_viscosity dt =
      let const_v = Constants.fluid_viscosity * dt
      let velocities = Seq.map Grid.laplacian markers
      Seq.iter2 (fun m v ->
                   let c = Grid.raw_get m
  