{-# OPTIONS_GHC -XGADTs #-}
{-# LANGUAGE GADTs, NoMonomorphismRestriction #-}