FunctorsNew.hs 593 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PolyKinds #-}

module Data.FunctorsNew where

import           Data.RefinementInterface
import           Data.Functors.Powerset (powerset, Powerset')
import           Data.Functors.FixedProduct (FixedProduct', fixedproduct)
import           Data.Functors.MonoidValued (MonoidValued', intValued, realValued)
import           Data.OpenUnion

type AllFunctors
   = '[ Powerset', FixedProduct', MonoidValued' Int, MonoidValued' Double]

data Fix f = Fix (f (Fix f))

newtype NestedFunctors = NestedFunctors (Fix (Union AllFunctors))