summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_compile/T22519.hs
blob: 86ab824a1a3a01c6fdf01b23c5ee2d145f8c692a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{-# LANGUAGE Haskell2010 #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
module Bug where

import Data.Coerce (coerce)
import Data.Kind (Type)
import GHC.TypeNats (Nat, type (<=))

f :: (1 <= w)
  => IO (SymBV' sym w)
  -> IO (SymBV sym w)
f = coerce

----

data BaseType = BaseBVType Nat
type family SymExpr (sym :: Type) :: BaseType -> Type
type SymBV sym n = SymExpr sym (BaseBVType n)
newtype SymBV' sym w = MkSymBV' (SymBV sym w)