<div dir="ltr"><div>What do you want the type of `omap` to be for `UserName`? There are two reasonable definitions:</div><div><br></div><div>omap :: (Text -> Text) -> (UserName -> UserName)</div><div>omap :: (Char -> Char) -> (UserName -> UserName)</div><div><br></div><div>The first one is saying that a UserName is a container of a single Text value. The second is that a UserName is a container of a sequence of Char values. Once you figure out what the answer to this question is, you'll need to use an associated type called Element to specify what you intend, e.g.:</div><div><br></div><div>type Element UserName = Char<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 10, 2017 at 11:35 AM, Baa <span dir="ltr"><<a href="mailto:aquagnu@gmail.com" target="_blank">aquagnu@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello, Dear List!<br>
<br>
I want to make functor of my type like<br>
<br>
  newtype UserName = UserName { unName :: Text }<br>
<br>
sure, it's impossible, so I will make MonoFunctor instead of (from<br>
library mono-traversable). So, I try:<br>
<br>
  instance MonoFunctor UserName where<br>
    omap fn (UserName n) = UserName $ fn $ n<br>
<br>
but I get error<br>
<br>
        • Couldn't match expected type ‘Element UserName’<br>
                      with actual type ‘Text’<br>
        • In the second argument of ‘($)’, namely ‘unName an’<br>
          In the second argument of ‘($)’, namely ‘fn $ unName an’<br>
          In the expression: UserName $ fn $ unName an<br>
<br>
interesting is that Text "type Element Text" of "type family Element<br>
mono" (instance?). So, how to make mono-functor for such `UserName`<br>
structure?<br>
<br>
<br>
--<br>
Best regards, Paul<br>
______________________________<wbr>_________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/beginners</a><br>
</blockquote></div><br></div>