ruin-0.1.0.0: test/MustCompile/RSplit.hs
{-# Language DataKinds #-}
{-# Language DeriveGeneric #-}
{-# Language FlexibleContexts #-}
{-# Language FlexibleInstances #-}
{-# Language MultiParamTypeClasses #-}
{-# Language QuasiQuotes #-}
{-# Language TemplateHaskell #-}
{-# Language TypeApplications #-}
{-# Language UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-missing-signatures #-}
module MustCompile.RSplit () where
import Control.Arrow ((***))
import GHC.Generics (Generic)
import Data.Ruin
import XY
data AB a b = MkAB {a::a,b::b} deriving (Generic,Show)
$(makeRecords [''AB])
-- _e ::
-- (Monoid a3, Monoid a2, Monoid a1, Monoid a) =>
-- t -> (XY a2 a3, AB a a1)
_e _ = hoid @XY *** hoid @AB $ rsym [rna|mempty@a mempty@b mempty@x mempty@y|]