Во-первых, -5 должен быть в скобках, иначе он анализируется как попытка вычесть 5 из функции hoursToTimeZone
, которая объясняет ошибку типа.
Кроме того, все функции здесь чистые, поэтому они не должны быть в монаде do{...}
. Просто используйте выражение let
, если вы хотите явно назвать шаги.
convertStringToUtc s =
let estTimeZone = hoursToTimeZone (-5)
time = read $ B.unpack s
in localTimeToUTC estTimeZone time