{-# LANGUAGE TypeOperators #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeFamilies #-} type family Remove v xs where Remove x (x ': xs) = Remove x xs Remove x (y ': xs) = y ': Remove x xs Remove x '[] = '[]