$
first parseError . (parseOnly oneChar . Text.pack)
where
parseError = const "Expecting a single character"
oneChar = anyChar <* endOfInput
eitherReader $
input >=> location
where
input = Right
location = maybeToEither "Location can't contain only whitespace" . PrintableText.fromText . Text.pack
eitherReader