liquidhaskell-0.4.0.0: tests/pos/extype.hs
{-# LANGUAGE ExistentialQuantification, MultiParamTypeClasses #-}
module ExTy where
class Show (layout a) => LayoutClass layout a where
data Layout a = forall l. Layout (l a)
readsLayout :: Layout a -> String -> Layout a
readsLayout (Layout l) s = Layout (asTypeOf undefined l)
type Size = Int
data Step s a = S s a
data Stream a =
forall s. Stream
(s -> Step s a) -- stepper function
!s -- current state
!Size -- size hint
foo :: Stream a -> Size
foo (Stream _ _ s) = s
stream = Stream (\_ -> S 1 True) 0 0