The following code produces an error:
import Data.Proxy (Proxy(..))
mkPersist sqlSettings [persistLowerCase|
Foo
bar (Proxy Foo)
|]
error:
• Exception when trying to run compile-time code:
Foo: a self reference must be a Maybe
CallStack (from HasCallStack):
error, called at ./Database/Persist/TH.hs:263:29 in persistent-template-2.5.3-Eo7SLuwZzwzIDXoxvwLBF1:Database.Persist.TH
Code: template-haskell-2.11.1.0:Language.Haskell.TH.Quote.quoteExp
persistLowerCase
"\n\
\Foo\n\
\ bar (Proxy Foo)\n"
• In the quasi-quotation:
[persistLowerCase|
Foo
bar (Proxy Foo)
|]
This isn’t really a self-reference, however, because a is phantom in Proxy a.
The following code produces an error:
This isn’t really a self-reference, however, because
ais phantom inProxy a.