Quick actions

cmd+k|ctrl+k

Navigation

Languages

TypeFamilies - class Key k

Snippet info

Language

Haskell

Visibility

public

Author

homam

Created

2016-12-25T16:09:42Z

Updated

2016-12-25T16:09:42Z

{-# LANGUAGE TypeFamilies #-}

class Key k where
  data Map k :: * -> *
  empty :: Map k v
  lookup :: k -> Map k v -> Maybe v
  
instance Key Bool where
  data Map Bool v = MapBool (Maybe v) (Maybe v)
  empty = MapBool Nothing Nothing
  lookup True  (MapBool _ t) = t
  lookup False (MapBool f _) = f
 
main = putStrLn "Hello World!"
INFO