@@ -36,6 +36,7 @@ import Control.Comonad.Cofree as Cofree
36import Control.Monad.Except (ExceptT(..), except, runExcept, throwError, withExcept)
36import Control.Monad.Except (ExceptT(..), except, runExcept, throwError, withExcept)
37import Data.Array as Array
37import Data.Array as Array
38import Data.Array.NonEmpty (NonEmptyArray, fromArray, toArray)
38import Data.Array.NonEmpty (NonEmptyArray, fromArray, toArray)
39+import Data.Array.NonEmpty as NonEmptyArray
39import Data.Bifunctor (lmap)
40import Data.Bifunctor (lmap)
40import Data.DateTime (DateTime)
41import Data.DateTime (DateTime)
41import Data.DateTime.Instant (Instant, instant, unInstant)
42import Data.DateTime.Instant (Instant, instant, unInstant)
@@ -54,10 +55,10 @@ import Data.Maybe (Maybe(..), fromMaybe, fromMaybe', maybe)
54import Data.Newtype (class Newtype, unwrap, wrap)
55import Data.Newtype (class Newtype, unwrap, wrap)
55import Data.Nullable (Nullable, toMaybe, toNullable)
56import Data.Nullable (Nullable, toMaybe, toNullable)
56import Data.Number as Number
57import Data.Number as Number
57−import Data.String.NonEmpty.Internal (NonEmptyString)
58+import Data.String.NonEmpty (NonEmptyString)
58−import Data.String.NonEmpty.Internal as NonEmptyString
59+import Data.String.NonEmpty as NonEmptyString
59import Data.Symbol (class IsSymbol, reflectSymbol)
60import 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)
61import Data.Traversable (traverse)
62import Data.Traversable (traverse)
62import Data.Tuple (Tuple(..))
63import Data.Tuple (Tuple(..))
63import Data.Variant (Variant, inj, on)
64import Data.Variant (Variant, inj, on)
@@ -228,7 +229,13 @@ instance ReadForeign Boolean where
228instance ReadForeign a ⇒ ReadForeign (Array a) where
229instance ReadForeign a ⇒ ReadForeign (Array a) where
229 readImpl = sequenceCombining <<< mapWithIndex readAtIdx <=< readArray
230 readImpl = sequenceCombining <<< mapWithIndex readAtIdx <=< readArray
232+instance ReadForeign (Maybe (NonEmptyString)) where
233+ readImpl = readImpl >=> pure <<< NonEmptyString.fromString
235+else instance ReadForeign a ⇒ ReadForeign (Maybe (NonEmptyArray a)) where
236+ readImpl = readImpl >=> pure <<< NonEmptyArray.fromArray
231−instance ReadForeign a ⇒ ReadForeign (Maybe a) where
238+else instance ReadForeign a ⇒ ReadForeign (Maybe a) where
232 readImpl = readNullOrUndefined readImpl
239 readImpl = readNullOrUndefined readImpl
234 readNullOrUndefined _ value | isNull value || isUndefined value = pure
241 readNullOrUndefined _ value | isNull value || isUndefined value = pure