{-# LANGUAGE ExplicitForAll #-}

module Main where

-- | Here goes a comment.
data Foo a where
    -- | 'Foo' is wonderful.
    Foo ::
        forall a b.
        (Show a, Eq b) => -- foo
        -- bar
        a ->
        b ->
        Foo 'Int
    -- | But 'Bar' is also not too bad.
    Bar ::
        Int ->
        Maybe Text ->
        Foo 'Bool
    -- | So is 'Baz'.
    Baz ::
        forall a.
        a ->
        Foo 'String
    (:~>) :: Foo a -> Foo a -> Foo a
