Commit 56f4215e authored by Simon Peyton Jones's avatar Simon Peyton Jones

Test Trac #7785

parent 967f6852
{-# LANGUAGE TypeFamilies, ConstraintKinds #-}
module Foo( shared, foo, bar) where
import GHC.Exts
type family Domain (f :: * -> *) a :: Constraint
type instance Domain [] a = ()
instance MyFunctor [] where
myfmap = map
class MyFunctor f where
myfmap :: (Domain f a, Domain f b) => (a -> b) -> f a -> f b
shared :: (MyFunctor f, Domain f Int) => f Int -> f Int
shared = let
f = myfmap negate
in
f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f.
f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f.
f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f.
f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f. f.
f
foo xs = shared $ 0:xs
bar xs = 0:shared xs
==================== Tidy Core rules ====================
"SPEC Foo.shared [[]]" [ALWAYS]
forall ($dMyFunctor :: Foo.MyFunctor [])
(irred :: Foo.Domain [] GHC.Types.Int).
Foo.shared @ [] $dMyFunctor irred
= Foo.bar_$sshared
......@@ -166,3 +166,4 @@ test('T7796',
['$MAKE -s --no-print-directory T7796'])
test('T5550', normal, compile, [''])
test('T7865', normal, run_command, ['$MAKE -s --no-print-directory T7865'])
test('T7785', only_ways(['optasm']), compile, ['-ddump-rules'])
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment