Ticket #7827: bug-tvar-passed-renamer.hs

File bug-tvar-passed-renamer.hs, 963 bytes (added by guest, 2 years ago)

Code for reproducing the error

Line 
1{-# LANGUAGE GADTs, ScopedTypeVariables #-}
2module Main where
3
4import           Prelude          (Either(..), Bool, Int, flip, undefined)
5
6import           Data.Typeable
7
8import           Control.Concurrent.MVar
9
10-- Bug
11
12bug :: WrappedR Int -> SomeFunction
13bug (Wrap node) = case node of
14  --(Memo' (emptyT :: t a b) (memoize :: MVar (t a b) -> (a -> b) -> a -> b) (Var m :: R' a b Int) :: R' a b Int) -> -- breaks
15  (Memo' (emptyT :: t a b) memoize (Var m) :: R' a b Int) -> -- also breaks
16  --(Memo' emptyT memoize (Var m) :: R' a b Int) -> -- Compiles
17    undefined
18
19-- Data definitions
20data R' a b r where
21  Memo'    :: (Typeable a, Typeable b)
22           =>  t a b -> (MVar (t a b) -> (a -> b) -> a -> b)
23           -> R' a b r -> R' a b r
24  Var      :: (Typeable a, Typeable b)
25           => r -> R' a b r
26
27data SomeFunction where
28  SomeFunction :: (a -> b) -> SomeFunction
29
30data WrappedR r where
31  Wrap :: (Typeable a, Typeable b) => R' a b r -> WrappedR r