úÎ97#     None-059;<==Type to represent an email address. Newtype wrapper around % with additional typeclass instances.Wrapper around .validate "foo@gmail.com"Right "foo@gmail.com"import Data.Either (isLeft)(isLeft $ validate "not an email address"TrueWrapper around . Similar to , but returns & if the email address fails to parse.emailAddress "foo@gmail.com"Just "foo@gmail.com"#emailAddress "not an email address"Nothing Create an  from a  value. See . Create an  from a  value. See .  Create an  from a  value. See .  Create an  from a  value. See . Wrapper around .Unsafely create an z from a local part and a domain part. The first argument is the local part, and the second argument is the domain part."For example, in the email address  foo@gmail.com, the local part is foo and the domain part is  gmail.com.$unsafeEmailAddress "foo" "gmail.com""foo@gmail.com" Wrapper around ..Extracts the local part from an email address."For example, in the email address  foo@gmail.com, the local part is foo.0let email = unsafeEmailAddress "foo" "gmail.com"email"foo@gmail.com"localPart email"foo" Wrapper around ./Extracts the domain part from an email address."For example, in the email address  foo@gmail.com, the domain part is  gmail.com.0let email = unsafeEmailAddress "foo" "gmail.com"email"foo@gmail.com"domainPart email "gmail.com"Wrapper around .0let email = unsafeEmailAddress "foo" "gmail.com"email"foo@gmail.com"toByteString email"foo@gmail.com"Convert an email address to .This assumes the  is UTF8-encoded.0let email = unsafeEmailAddress "foo" "gmail.com"email"foo@gmail.com" toText email"foo@gmail.com"This instance assumes  is UTF8-encoded. See .1toUrlPiece $ unsafeEmailAddress "foo" "gmail.com""foo@gmail.com"Turn  into JSON.-toJSON $ unsafeEmailAddress "foo" "gmail.com"String "foo@gmail.com"+show $ unsafeEmailAddress "foo" "gmail.com""\"foo@gmail.com\""!toText $ read "\"foo@gmail.com\"""foo@gmail.com"Treat  just like a  value.%sqlType (Proxy :: Proxy EmailAddress) SqlStringTreat  just like a  value.import Data.Either (isLeft)Fimport Database.Persist.Types (PersistValue(PersistBool, PersistText))5toPersistValue $ unsafeEmailAddress "foo" "gmail.com"PersistText "foo@gmail.com"<fmap toText $ fromPersistValue (PersistText "foo@gmail.com")Right "foo@gmail.com"ZisLeft (fromPersistValue (PersistText "not an email address") :: Either Text EmailAddress)TrueIisLeft (fromPersistValue (PersistBool False) :: Either Text EmailAddress)True See  and .+fmap toText $ fromPathPiece "foo@gmail.com"Just "foo@gmail.com":fmap toText $ fromPathPiece "this is not an email address"Nothing2toPathPiece $ unsafeEmailAddress "foo" "gmail.com""foo@gmail.com"!Parse  from JSON.import Data.Aeson (decode)Lfmap (fmap toText) (decode "[ \"foo@gmail.com \" ]" :: Maybe [EmailAddress])Just ["foo@gmail.com"]=decode "[ \"not an email address\" ]" :: Maybe [EmailAddress]Nothing"This instance assumes  is UTF8-encoded. See .import Data.Either (isLeft)+fmap toText $ parseUrlPiece "foo@gmail.com"Right "foo@gmail.com"KisLeft $ (parseUrlPiece "not an email address" :: Either Text EmailAddress)True  Local part Domain part # !"$%  # !"$%:Wrapper around email-validate adding additional instances.(c) Dennis Gosnell, 2016BSD3None    &        !"#$%&'(+emailaddress-0.2.0.0-BNjAFSfKPfCH8VEYCVQy1GText.EmailAddressText.EmailAddress.Internal+email-validate-2.2.0-GwuYuDTZSJELmu4wtQkMGrText.Email.ValidateisValidcanonicalizeEmail EmailAddressunEmailAddressvalidate emailAddressvalidateFromTextemailAddressFromTextvalidateFromStringemailAddressFromStringunsafeEmailAddress localPart domainPart toByteStringtoTextText.Email.ParserbaseGHC.BaseNothing#text-1.2.2.1-9Yh8rJoh8fO2JMLWffT3QsData.Text.InternalTextString$fToHttpApiDataEmailAddress$fToJSONEmailAddress$fShowEmailAddress$fReadEmailAddress$fPersistFieldSqlEmailAddress$fPersistFieldEmailAddress$fPathPieceEmailAddress$fFromJSONEmailAddress$fFromHttpApiDataEmailAddress,$fQueryRunnerColumnDefaultPGTextEmailAddress$fFromFieldEmailAddress#$fDefaultConstantEmailAddressColumn