2
私はHaskellでDSLを構築するためのASTを書いてきたと、そのために、私のような表現を定義するためにGADTsを使用しています:HaskellでDSLの型を定義する方法は?
data Expr a where
I :: Int -> Expr Int
B :: Bool -> Expr Bool
Add :: Expr Int -> Expr Int -> Expr Int
Mul :: Expr Int -> Expr Int -> Expr Int
Eq :: Expr Int -> Expr Int -> Expr Bool
をしかし、私は追加し、ムルのような表現のための希望Float型とDouble型からの他の数値も使用できます。 このような結果をどのように達成することができますか?
それは単にすることができます - > Exprに - - おそらく答えなければなりません> ExprにA' –
@AnupamJain EXPR '追加::のNum A => – jkeuhlen