所以,我有具有大量的情況下,這是由一種「註釋」類型 data Expr a = Plus a Int Int
| ...
| Times a Int Int
我有參數的AST數據類型註釋類型S和T,以及一些功能f :: S -> T。我想採用Expr S並將其轉換爲Expr T,使用我的轉換f對每個S發生在Expr值內。 有沒有辦法做到這一點使用SYB或泛型,並避免在每種情
與this question相關我今天早些時候問過。 我有大量的案例,這是由「註釋」型 data Expr ann def var = Plus a Int Int
| ...
| Times a Int Int
deriving (Data, Typeable, Functor)
我有具體事例爲高清和VAR參數的AST數據類型,說Def和Var。 我想要的是自動
我正在使用GHC泛型。我的用例幾乎與the example in the wiki相同,只是我編碼和解碼基因序列。 這一切都工作正常,直到我決定保留我已經閱讀的清單,以便我可以在發生錯誤時向用戶報告。這意味着我需要添加一個Show約束到我的默認get實現。問題是我無法弄清楚如何編寫約束。請參閱下面的代碼中的-- HELP!!!評論。 {-# LANGUAGE FlexibleContexts #-
我正在嘗試瞭解如何使用GHC.Generics。一個迷人的話題,但令人生畏。 在閱讀博客條目24 Days of GHC Extensions: DeriveGeneric時,我學會了如何獲取價值並導航其Rep。好的。 但是,讀博客條目Building data constructors with GHC Generics描述了構建Rep的模擬並將其轉換回一個值,我很難過。我已閱讀anumbero
我正在通過博客文章Building data constructors with GHC Generics上的內容工作。我之前的問題是here。 的發佈具有下面的代碼來創建一個Rep: {-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-}
{-# LANGUAGE FlexibleInstances, Undecidable
我在與尋找合適的類型約束以下代碼問題而引起的 {-# LANGUAGE DeriveGeneriC#-}
{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE FlexibleContexts #-}
import GHC.Generics
data Value = One | Tw