| 
22015
 | 
     1  | 
module Codegen where {
 | 
| 
 | 
     2  | 
  | 
| 
 | 
     3  | 
import qualified Nat;
  | 
| 
21147
 | 
     4  | 
  | 
| 
22015
 | 
     5  | 
class Null a where {
 | 
| 
 | 
     6  | 
  nulla :: a;
  | 
| 
 | 
     7  | 
};
  | 
| 
 | 
     8  | 
  | 
| 
25731
 | 
     9  | 
heada :: forall a. (Codegen.Null a) => [a] -> a;
  | 
| 
22751
 | 
    10  | 
heada (x : xs) = x;
  | 
| 
22015
 | 
    11  | 
heada [] = Codegen.nulla;
  | 
| 
21147
 | 
    12  | 
  | 
| 
25731
 | 
    13  | 
null_option :: forall a. Maybe a;
  | 
| 
25056
 | 
    14  | 
null_option = Nothing;
  | 
| 
 | 
    15  | 
  | 
| 
24628
 | 
    16  | 
instance Codegen.Null (Maybe a) where {
 | 
| 
25056
 | 
    17  | 
  nulla = Codegen.null_option;
  | 
| 
22015
 | 
    18  | 
};
  | 
| 
21147
 | 
    19  | 
  | 
| 
22015
 | 
    20  | 
dummy :: Maybe Nat.Nat;
  | 
| 
 | 
    21  | 
dummy = Codegen.heada [Just (Nat.Suc Nat.Zero_nat), Nothing];
  | 
| 
21147
 | 
    22  | 
  | 
| 
22015
 | 
    23  | 
}
  |