diff options
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/tests/typecheck/should_compile/T19315.hs | 42 | ||||
-rw-r--r-- | testsuite/tests/typecheck/should_compile/all.T | 1 |
2 files changed, 43 insertions, 0 deletions
diff --git a/testsuite/tests/typecheck/should_compile/T19315.hs b/testsuite/tests/typecheck/should_compile/T19315.hs new file mode 100644 index 0000000000..d93f42c4d4 --- /dev/null +++ b/testsuite/tests/typecheck/should_compile/T19315.hs @@ -0,0 +1,42 @@ +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE FunctionalDependencies #-} +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE TypeFamilies #-} +module Bug where + +import Control.Monad.Reader +import Data.Kind + +type Lens f s a = (f, s, a) + +view :: MonadReader s m => Lens a s a -> m a +view = undefined + +data TickLabels b n = TickLabels + +type family N a :: Type +type instance N (TickLabels b n) = n + +tickLabelTextFunction :: Lens f a (QDiagram b (N a)) +tickLabelTextFunction = undefined + +class HasTickLabels f a b | a -> b where + tickLabelFunction :: Lens f a (N a -> String) + +instance HasTickLabels f (TickLabels b n) b where + tickLabelFunction = undefined + +data QDiagram b n = QD + +renderColourBar :: forall n b. TickLabels b n -> n -> () +renderColourBar cbTickLabels bnds = () + where + f :: a -> a + f x = x + + tickLabelXs :: String + tickLabelXs = view tickLabelFunction cbTickLabels bnds + + drawTickLabel :: n -> QDiagram b n + drawTickLabel x = view tickLabelTextFunction cbTickLabels + where v = f x diff --git a/testsuite/tests/typecheck/should_compile/all.T b/testsuite/tests/typecheck/should_compile/all.T index 3842a1984c..46f2d088d1 100644 --- a/testsuite/tests/typecheck/should_compile/all.T +++ b/testsuite/tests/typecheck/should_compile/all.T @@ -770,3 +770,4 @@ test('InlinePatSyn_ExplicitBidiBuilder', [], makefile_test, []) test('InlinePatSyn_ExplicitBidiMatcher', [], makefile_test, []) test('T18467', normal, compile, ['']) +test('T19315', normal, compile, ['']) |