large-records-0.1.0.0: test/Test/Record/Prop/Show/Large.hs
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
-- {-# OPTIONS_GHC -ddump-splices #-}
module Test.Record.Prop.Show.Large (
FromRegular(..)
, Example1(..)
) where
import Data.Record.TH
import qualified Test.Record.Prop.Show.Regular as Regular
class FromRegular a b | a -> b, b -> a where
fromRegular :: a -> b
largeRecord defaultPureScript [d|
data Example1 = MkExample1 {
example1Field1 :: Int
, example1Field2 :: Bool
}
deriving (Show)
|]
instance FromRegular Regular.Example1 Example1 where
fromRegular Regular.MkExample1{..} = [lr| MkExample1 {
example1Field1 = example1Field1
, example1Field2 = example1Field2
} |]