module Data.Hole.Lazy (
    Hole(Hole)
) where


data Hole a = Hole
    deriving (Read)


instance Show (Hole a) where
    show = const "Hole"


instance Eq (Hole a) where
    _ == _ = True


instance Ord (Hole a) where
    _ <= _ = True


instance Functor Hole where
    fmap _ _ = Hole


instance Monad Hole where
    return = const Hole
    _ >>= _ = Hole
    _ >> _ = Hole