packages feed

bidirectional-instances-0.1.0.0: examples/Overlap.hs

{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE FlexibleInstances #-}

module Overlap where

import Control.Bidirectional (decBidirectionalInstances)

data A a = A a

decBidirectionalInstances [d| 
    instance Show a => Show (A a) where
      show (A a) = "A " ++ show a
  |]

instance {-# OVERLAPS #-} Show (A Int) where
  show (A a) = "Integral A: " ++ show (toInteger a)