This had been bugging me for a while and came up when talking to @Magellol.
ICU.Message was a sum type (Static | Dynamic) and is now a newtype holding a Stream. NEStream (non-empty Stream) is removed. There was only one part of the codebase that cared about whether the message was static or not, the TypeScript compiler as it pertains to the argument (x or ()), and that's trivially replaced with a quick any call.
ICU.Arg was essentially just an additional wrapper around ICU.Interpolation's data (name and type).
This had been bugging me for a while and came up when talking to @Magellol.
ICU.Message
was a sum type (Static | Dynamic
) and is now a newtype holding aStream
.NEStream
(non-emptyStream
) is removed. There was only one part of the codebase that cared about whether the message was static or not, the TypeScript compiler as it pertains to the argument (x
or()
), and that's trivially replaced with a quickany
call.ICU.Arg
was essentially just an additional wrapper aroundICU.Interpolation
's data (name and type).