module Stdlib.Data.Bool;

import Stdlib.Data.Bool.Base open public;
import Stdlib.Data.Pair.Base open;
import Stdlib.Data.String.Base open;
import Stdlib.Trait.Eq open;
import Stdlib.Trait.Ord open;
import Stdlib.Trait.Show open;

{-# specialize: true, inline: case #-}
deriving instance
eqBoolI : Eq Bool;

{-# specialize: true, inline: case #-}
deriving instance
ordBoolI : Ord Bool;

instance
showBoolI : Show Bool :=
  mkShow@{
    show (x : Bool) : String :=
      if 
        | x := "true"
        | else := "false";
  };