Haskell 为Newtype派生'ToHtml'?

Haskell 为Newtype派生'ToHtml'?,haskell,servant,Haskell,Servant,鉴于: 我创建了一个新类型: 但是,范围中似乎没有TOHTMLFoo类型类: λ: >newtype Foo = Foo String 如果没有显式的实例定义,我如何获得一个ToHtml Foo?Foo需要派生ToHtml类作为该类的实例。 由于Foo是一种新类型的字符串,因此可以使用以下方法完成: λ: >:t toHtml toHtml :: (Monad m, ToHtml a) => a -> HtmlT m () λ: >toHtml "foo" foo

鉴于:

我创建了一个新类型:

但是,范围中似乎没有TOHTMLFoo类型类:

λ: >newtype Foo = Foo String
如果没有显式的实例定义,我如何获得一个ToHtml Foo?

Foo需要派生ToHtml类作为该类的实例。 由于Foo是一种新类型的字符串,因此可以使用以下方法完成:

λ: >:t toHtml
toHtml :: (Monad m, ToHtml a) => a -> HtmlT m ()
λ: >toHtml "foo"
foo
我想,这段代码演示了您要查找的内容:

{-# LANGUAGE GeneralizedNewtypeDeriving #-}
Foo需要派生ToHtml类作为该类的实例。 由于Foo是一种新类型的字符串,因此可以使用以下方法完成:

λ: >:t toHtml
toHtml :: (Monad m, ToHtml a) => a -> HtmlT m ()
λ: >toHtml "foo"
foo
我想,这段代码演示了您要查找的内容:

{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}

import Lucid.Base

newtype Foo = Foo String deriving ToHtml

main = print $ toHtml (Foo "foo")