Remove phantom types, device::Options, and simplify type signatures