///|
pub fn lorem_random(
  delimiter : Delimiter,
  corpus : String,
  words~ : Int,
  rand? : @random.Rand = @random.Rand::chacha8(seed=generate_time_based_seed()),
) -> String {
  SecondOrderMarkov::from_text(delimiter, corpus).generate(
    delimiter,
    words~,
    rand~,
  )
}

///|
pub fn lorem(
  delimiter : String,
  corpus : String,
  words : Int,
  seed : Int,
) -> String {
  let delimiter = match delimiter {
    "zh" | "ja" | "kr" => delimiter_cjk
    _ => delimiter_latin
  }
  let rand = @random.Rand::chacha8(
    seed=generate_normalized_seed(seed.to_uint64()),
  )
  SecondOrderMarkov::from_text(delimiter, corpus).generate(
    delimiter,
    words~,
    rand~,
  )
}