Commit 3b6a4909 authored by Simon Peyton Jones's avatar Simon Peyton Jones

Add missing T11408.hs

parent 9308c736
{-# LANGUAGE TypeFamilies #-}
module T11408 where
type family UL a
type family UR a
type family MT a b
mkMerge :: a -> UL a -> UR a -> Int
mkMerge = undefined
merger :: a -> b -> MT a b
merger = undefined
merge ::
forall a b. (UL (MT a b) ~ a, UR (MT a b) ~ b) => a -> b -> Int
forall t. (MT (UL t) (UR t) ~ t) => UL t -> UR t -> Int
These types are equivalent, and in fact neither is ambiguous,
but the solver has to work quite hard to prove that.
merge x y = mkMerge (merger x y) x y
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