Replace pattern match with func for compatibility

The previous version fixed the build for ghc-7.8.2 but broke it for ghc-7.8.3.

Compare [`HsExpr.MatchGroup` in ghc-7.8.2](https://www.haskell.org/ghc/docs/7.8.2/html/libraries/ghc-7.8.2/HsExpr.html#t:MatchGroup:), where the `MG` constructor takes three parameters,

```haskell
data MatchGroup id body
	= MG { mg_alts    :: [LMatch id body]  -- The alternatives
			 , mg_arg_tys :: [PostTcType]      -- Types of the arguments, t1..tn
			 , mg_res_ty  :: PostTcType  }     -- Type of the result, tr
		 -- The type is the type of the entire group
		 --      t1 -> ... -> tn -> tr
		 -- where there are n patterns
	deriving (Data, Typeable)
```

with [`HsExpr.Matchgroup` in ghc-7.8.3](https://www.haskell.org/ghc/docs/7.8.3/html/libraries/ghc-7.8.3/HsExpr.html#t:MatchGroup), where the `MG` constructor takes four parameters.

```haskell
data MatchGroup id body
	= MG { mg_alts    :: [LMatch id body]  -- The alternatives
			 , mg_arg_tys :: [PostTcType]      -- Types of the arguments, t1..tn
			 , mg_res_ty  :: PostTcType        -- Type of the result, tr
			 , mg_origin  :: Origin }
		 -- The type is the type of the entire group
		 --      t1 -> ... -> tn -> tr
		 -- where there are n patterns
	deriving (Data, Typeable)
```

We can't use the `__GLASGOW_HASKELL__` C pre-processor macro to differentiate between the two patch releases, as it only contains major & minor version information.

However, both versions provide a `mg_res_ty :: MatchGroup id body -> PostTcType` field accessor function, so if we replace the pattern match with a use of that function,
we're compatible with both versions.