large-records-0.4: test/Test/Record/Sanity/Operators.hs
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -fplugin=Data.Record.Plugin #-}
module Test.Record.Sanity.Operators () where
import Data.Kind (Type)
import Data.Record.Plugin
-- Some type family (e.g. servant record-style API def).
type family tag :- route :: Type
{-# ANN type X largeRecord #-}
data X mode = MkX { _fx1 :: (mode :- Int) }
{-# ANN type Y largeRecord #-}
data Y mode = MkY { _fy1 :: mode :- Int }