LUnit = distinct int32
proc `$`(a: LUnit): string {....raises: [], tags: [], forbids: [].}
proc `*`(a, b: LUnit): LUnit {.inline, ...raises: [], tags: [], forbids: [].}
proc `*=`(a: var LUnit; b: LUnit) {.inline, ...raises: [], tags: [], forbids: [].}
proc `+`(a, b: LUnit): LUnit {.inline, ...raises: [], tags: [], forbids: [].}
proc `+=`(a: var LUnit; b: LUnit) {.inline, ...raises: [], tags: [], forbids: [].}
proc `-`(a, b: LUnit): LUnit {.inline, ...raises: [], tags: [], forbids: [].}
proc `-`(a: LUnit): LUnit {.inline, ...raises: [], tags: [], forbids: [].}
proc `-=`(a: var LUnit; b: LUnit) {.inline, ...raises: [], tags: [], forbids: [].}
proc `<`(a, b: LUnit): bool {.borrow, ...raises: [], tags: [], forbids: [].}
proc `<=`(a, b: LUnit): bool {.borrow, ...raises: [], tags: [], forbids: [].}
proc `==`(a, b: LUnit): bool {.borrow, ...raises: [], tags: [], forbids: [].}
proc ceilTo(a: LUnit; prec: int): LUnit {....raises: [], tags: [], forbids: [].}
proc `div`(a, b: LUnit): LUnit {.inline, ...raises: [], tags: [], forbids: [].}
proc max(a, b: LUnit): LUnit {.borrow, ...raises: [], tags: [], forbids: [].}
proc min(a, b: LUnit): LUnit {.borrow, ...raises: [], tags: [], forbids: [].}
proc toFloat32(a: LUnit): float32 {....raises: [], tags: [], forbids: [].}
proc toFloat64(a: LUnit): float64 {....raises: [], tags: [], forbids: [].}
proc toInt(a: LUnit): int {....raises: [], tags: [], forbids: [].}
proc toLUnit(a: float32): LUnit {....raises: [], tags: [], forbids: [].}
proc toLUnit(a: int): LUnit {....raises: [], tags: [], forbids: [].}
proc toLUnit(a: int32): LUnit {....raises: [], tags: [], forbids: [].}
template `'lu`(s: static string): LUnit