{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE TypeFamilies #-}
module Data.List.TypeLevel where

type family (++) (xs :: [a]) (ys :: [a]) :: [a] where
  '[] ++ ys = ys
  (x ': xs) ++ ys = x ': (xs ++ ys)