{-# OPTIONS_GHC -fwarn-incomplete-patterns  #-}
{-# OPTIONS_GHC -fwarn-missing-methods      #-}     
{-# LANGUAGE DeriveDataTypeable             #-}
{-# LANGUAGE DeriveFunctor                  #-}
{-# LANGUAGE GeneralizedNewtypeDeriving     #-}
{-# LANGUAGE PatternGuards                  #-}
{-# LANGUAGE TemplateHaskell                #-} 

