Advertisement
Guest User

Untitled

a guest
Jun 26th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.42 KB | None | 0 0
  1. newtype Rule = Rule String deriving (Show)
  2.  
  3. class RuleSet a where
  4. getRules :: a -> [Rule]
  5.  
  6. data Bus = Bus [Rule] deriving (Show)
  7. instance RuleSet Bus where
  8. getRules (Bus rules) = rules
  9.  
  10. data Net = Net Bus [Rule] deriving (Show)
  11. instance RuleSet Net where
  12. getRules (Net bus rules) = getRules(bus) ++ rules
  13.  
  14.  
  15. bus = Bus [Rule "Rule 1", Rule "Rule 2"]
  16. net = Net bus [Rule "Own net rule"]
  17. main = putStrLn(show $ getRules(net))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement