{-# LANGUAGE NoImplicitPrelude #-} module Standalone where (|*|) :: a -> a -> a (|*|) = (|*|) infixr 6 |*| (|$|) :: (a -> b) -> a -> b f |$| x = f x infixr 1 |$| data Foo = MkFoo data Bar = MkBar f :: Foo -> Bar f MkFoo = MkBar foo = f |$| MkFoo |*| MkFoo |*| MkFoo