never executed always true always false
    1 module HelVM.HelMA.Automaton.API.Lang where
    2 
    3 import           HelVM.HelMA.Automata.BrainFuck.API.ImplType
    4 import           HelVM.HelMA.Automata.ETA.API.AutomatonType
    5 import           HelVM.HelMA.Automata.Piet.API.LexerType
    6 import           HelVM.HelMA.Automata.WhiteSpace.API.TokenType
    7 
    8 data LangCommand
    9   = BFCommand !ImplType
   10   | ETACommand !AutomatonType
   11   | FCommand
   12   | PietCommand !(Maybe LexerType) !(Maybe Natural)
   13   | SQCommand
   14   | WSCommand !TokenType
   15   | CatCommand
   16   | RevCommand
   17   | LazyCommand
   18   | ZotCommand
   19 
   20 -- Lang
   21 
   22 defaultLang ∷ Lang
   23 defaultLang = minBound
   24 
   25 langs ∷ NonEmpty Lang
   26 langs = universeNonEmpty
   27 
   28 data Lang
   29   = BF
   30   | ETA
   31   | F
   32   | Piet
   33   | SQ
   34   | WS
   35   | Cat
   36   | Rev
   37   | Lazy
   38   | Zot
   39   deriving stock (Bounded, Enum, Eq, Read, Show)