for a reasonable substitute subset, use the core language types, and implement LogValuer for anything complex.