packages feed

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|]