derive PartitionedSignal from UserValue (temporarily) and add lower()