より良い環境を求めて このページをアンテナに追加 RSSフィード

2012-03-27

[] persistentで自動生成されたコードを見る

Template Haskellで生成されたコードを見る手順メモ。


http://www.yesodweb.com/book/persistent

ここのサンプルをファイルに保存する。分かりやすいようにpersistの定義は別関数にする。

runPersist = [persist|
Person
    name String
    nick String
    age Int Maybe
BlogPost
    title String
    authorId PersonId
|]

そしてghciで開く。


*Main> :t runPersist
runPersist :: [EntityDef]

*Main> let expr = share [mkPersist sqlSettings] runPersist
Loading package persistent-sqlite-0.8.0 ... linking ... done.

*Main> :t expr
expr
  :: Language.Haskell.TH.Syntax.Q [Language.Haskell.TH.Syntax.Dec]

*Main> :m +Language.Haskell.TH
*Main Language.Haskell.TH> 

*Main Language.Haskell.TH> :t runQ expr
runQ expr :: Language.Haskell.TH.Syntax.Quasi m => m [Dec]

*Main Language.Haskell.TH> q <- runQ expr
*Main Language.Haskell.TH> :t q
q :: [Dec]

*Main Language.Haskell.TH> ppr q
instance Database.Persist.Store.PersistField (PersonGeneric backend)
    where sqlType _ = Database.Persist.Store.SqlString
... 以下出力

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

トラックバック - http://d.hatena.ne.jp/n314/20120327/1332812225
リンク元