@@ -36,6 +36,7 @@ import Control.Comonad.Cofree as Cofree
3636import Control.Monad.Except (ExceptT(..), except, runExcept, throwError, withExcept)
3737import Data.Array as Array
3838import Data.Array.NonEmpty (NonEmptyArray, fromArray, toArray)
39+import Data.Array.NonEmpty as NonEmptyArray
3940import Data.Bifunctor (lmap)
4041import Data.DateTime (DateTime)
4142import Data.DateTime.Instant (Instant, instant, unInstant)
@@ -54,10 +55,10 @@ import Data.Maybe (Maybe(..), fromMaybe, fromMaybe', maybe)
5455import Data.Newtype (class Newtype, unwrap, wrap)
5556import Data.Nullable (Nullable, toMaybe, toNullable)
5657import Data.Number as Number
57−import Data.String.NonEmpty.Internal (NonEmptyString)
58−import Data.String.NonEmpty.Internal as NonEmptyString
58+import Data.String.NonEmpty (NonEmptyString)
59+import Data.String.NonEmpty as NonEmptyString
5960import Data.Symbol (class IsSymbol, reflectSymbol)
60−import Data.Time.Duration (Days(..), Hours(..), Milliseconds(..), Minutes(..), Seconds(..))
61+import Data.Time.Duration (Days, Hours, Milliseconds, Minutes, Seconds)
6162import Data.Traversable (traverse)
6263import Data.Tuple (Tuple(..))
6364import Data.Variant (Variant, inj, on)
@@ -228,7 +229,13 @@ instance ReadForeign Boolean where
228229instance ReadForeign a ⇒ ReadForeign (Array a) where
229230 readImpl = sequenceCombining <<< mapWithIndex readAtIdx <=< readArray
230231
231−instance ReadForeign a ⇒ ReadForeign (Maybe a) where
232+instance ReadForeign (Maybe (NonEmptyString)) where
233+ readImpl = readImpl >=> pure <<< NonEmptyString.fromString
234+
235+else instance ReadForeign a ⇒ ReadForeign (Maybe (NonEmptyArray a)) where
236+ readImpl = readImpl >=> pure <<< NonEmptyArray.fromArray
237+
238+else instance ReadForeign a ⇒ ReadForeign (Maybe a) where
232239 readImpl = readNullOrUndefined readImpl
233240 where
234241 readNullOrUndefined _ value | isNull value || isUndefined value = pure