-- | TODO: Phone module should include at least some sort of smart -- | constructors, rejecting invalid phone numbers. module App.Phone where import Prelude import Data.Codec.Argonaut (JsonCodec) import Data.Codec.Argonaut as CA import Data.Newtype (class Newtype) import Data.Profunctor (wrapIso) newtype Phone = Phone String derive instance newtypePhone :: Newtype Phone _ derive instance eqPhone :: Eq Phone derive instance ordPhone :: Ord Phone -- | Phone.codec can be used to parse and encode phone numbers. codec :: JsonCodec Phone codec = wrapIso Phone CA.string