λ
Size: a a a
AK
AK
AK
p
AK
AK
p
AK
eta?AK
data Shape = forall a. Shape_ a => Shape aAK
class FooA a where
test :: a
data Test =
Test (forall a. FooA a => { x :: List a })
type TestWrap a =
{ wrap :: Test
}
func :: forall a. TestWrap a -> List a
func { wrap } =
case wrap of
(Test { x }) -> x
λ
data Shape = forall a. Shape_ a => Shape aλ
AK
data Shape = Shape (forall a. Shape_ a => a)AK
class FooA a where
test :: a
data Test =
Test (forall a. FooA a => { x :: List a })
type TestWrap a =
{ wrap :: Test
}
func :: forall a. TestWrap a -> List a
func { wrap } =
case wrap of
(Test { x }) -> x
AK
AK
class FooA a where
test :: a
data Test a =
Test (FooA a => { x :: List a })
type TestWrap a =
{ wrap :: Test a
}
func :: forall a. TestWrap a -> List a
func { wrap } =
case wrap of
(Test { x }) -> x
AK
a пробрасывается из TestWrapAK
data Test a = Test (Foo a => ... a), да, спасибо