BNOT
detect ~ as signed
fix unary + sign detection
let type detection be driven by ints
refactor detectSign and add conditional detection