私は持っていてdata RegEx
、実装したいと思っていますinstance Show a => Show RegEx a
。これが私のコードです:
showAtom :: Show a => RegEx a -> String
showAtom (Lit x) = show x
showAtom r = "(" ++ (show r) ++ ")"
instance Show a => Show (RegEx a) where
show (Lit x) = show [x]
show (Opt r) = (showAtom r) ++ "?"
show (Alt p q) = (showAtom p) ++ "|" ++ (showAtom q)
show (Seq p q) = (show p) ++ (show q)
show (Rep r) = (showAtom r) ++ "*"
showAtom
関数は単なる実装の詳細です。instance
定義内でのみ表示されるように、非表示にする方法はありますか? またはさらに良いのは、 内でのみ表示できるようにすることshow
です。