<pre style="white-space:pre-wrap;background-color:rgb(255,255,255)"><div dir="auto">> I really don't understand what is going on here.  ...</div><div dir="auto">
--------------------------------------------------------------------------------

> {-# LANGUAGE TypeFamilies #-}
> {-# LANGUAGE AllowAmbiguousTypes #-}


> {-
>
> src/Games/Ambiguous.hs:15:16: error: …
>    • Couldn't match expected type ‘SubAmbi a0’
>                  with actual type ‘SubAmbi a’
>      NB: ‘SubAmbi’ is a non-injective type family
>      The type variable ‘a0’ is ambiguous
>
> -}
</div><div dir="auto"><br></div><div dir="auto">Hi Henry, both replies you've received are excellent, I won't expand on them.</div><div dir="auto"><br></div><div dir="auto">I am interested in how you got into such a pickle in the first place:</div><div dir="auto"><br></div><div dir="auto">Why set `AllowAmbiguousTypes`? Did you understand what that means?</div><div dir="auto"><br></div><div dir="auto">Did you think it odd that despite having that set, you get error `type variable ... is ambiguous`?</div><div dir="auto"><br></div><div dir="auto">There are ways to achieve what you want without `AllowAmbiguousTypes` nor `TypeApplications`, but that would need a rather different design. So what lead you into this design?</div><div dir="auto"><br></div><div dir="auto">AntC</div><br></pre>