GeneralizedNewtypeDerivingがPersistFieldSqlで失敗する

jcristovao

Markdown newtypeを定義しようとしていますが、を使用GeneralizedNewtypeDerivingして新しいインスタンスを自動的に定義しています。

import Text.Markdown
import Yesod.Text.Markdown
import Database.Persist.Sql

newtype MarkdownNewT = MarkdownNewT { getMarkdown :: Markdown }
  deriving (Eq, IsString, Monoid, PersistField, PersistFieldSql)

これはPersistFieldSql、次のメッセージで失敗します。

Could not coerce from ‘m Markdown’ to ‘m MarkdownNewT’
  because ‘m Markdown’ and ‘m MarkdownNewT’ are different types.
  arising from the coercion of the method ‘sqlType’ from type
               ‘forall (m :: * -> *). Monad m => m Markdown -> SqlType’ to type
               ‘forall (m :: * -> *). Monad m => m MarkdownNewT -> SqlType’

これは、GHC 7.8.2の新しい役割機能によるものですか?その特定のケースでは、Markdown自体がTextの新しいタイプであるため、どうすればよいかわかりません...

それとも、これはforallオンに関連してsqlTypeますか?他のすべてのインスタンスが正常に自動的に派生した場合、このエラーの理由は何ですか?

ありがとう

ØrjanJohansen

これはVector残念ながら、現在のロールシステムでは機能しないもののGHC wiki Roles2ページのいくつかの例(特に1つ)と非常によく似ています

基本的に問題は

class PersistField a => PersistFieldSql a where
    sqlType :: Monad m => m a -> SqlType

モナドはmそのため、その引数名目的な役割を持っているタイプのコンストラクタでインスタンス化されるかもしれないm Markdownm MarkdownNewT されていない同一の場合でも、表現MarkdownMarkdownNewT自身がある-と現在の役割システムは、制限のない方法がありませんm、このようなタイプのコンストラクタを禁止することを。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

.bashrcが原因でgitpushが失敗する

分類Dev

codenameoneでURLImage.createToStorageが失敗する

分類Dev

JsonTestでSpring Autoconfigurationが失敗する

分類Dev

MethodNodeの作成がIllegalStateExceptionで失敗する

分類Dev

Java 11でOpenWebBeans CDIが失敗する

分類Dev

Dockerfileでgit installが失敗する

分類Dev

matches(not(isDisplayed()))がNoMatchingViewExceptionで失敗する

分類Dev

pdf.jsがgetDocumentで失敗する

分類Dev

FindNameがTabItemで失敗する

分類Dev

rsyncがjenkinsで失敗する理由

分類Dev

Javaで同期が失敗する

分類Dev

git svncloneが「Failedtostrippath」で失敗する

分類Dev

jQgridfilterToolbarがsearchOnEnterで失敗する

分類Dev

Apache SparkMultilayerPerceptronClassifierがArrayIndexOutOfBoundsExceptionで失敗する

分類Dev

jQgridfilterToolbarがsearchOnEnterで失敗する

分類Dev

Powershellが更新で失敗する

分類Dev

PostgreSQLRETURNINGがREGEXP_REPLACEで失敗する

分類Dev

Docker forWindowsで「dockerpullredis」が失敗する

分類Dev

OpenShift occreateが「alreadyexists」で失敗する

分類Dev

MacでMakeが失敗する

分類Dev

AndroidでFirebaseFirestoreGetInstanceが失敗する

分類Dev

画像onClickがReactで失敗する

分類Dev

Instanceofがiframeで失敗する

分類Dev

mmapsyscallがerrno14で失敗する

分類Dev

Jestでテストが失敗する

分類Dev

LinuxでDateTimeOffset.TryParseが失敗する

分類Dev

MacOS BigSurでHomebrewが失敗する

分類Dev

users?$ expand = driveがInternalServerErrorで失敗する

分類Dev

WiXRegistrySearchがMultiStringで失敗する

Related 関連記事

ホットタグ

アーカイブ