packages feed

unbound-0.5.0: test/Abstract.hs

{-# LANGUAGE FlexibleContexts, FlexibleInstances, MultiParamTypeClasses,
             TemplateHaskell, UndecidableInstances #-}
module Lib
     where

import Unbound.LocallyNameless

data Term = Word Word
  deriving Show

$(derive_abstract [''Word]) -- No type structure information available
$(derive [''Term])
instance Alpha Word
instance Alpha Term

t1 :: Term
t1 = Word 5

wrong :: Bool
wrong = t1 `aeq` t1 -- should throw an error as Word is "abstract"